deno import JSON file as module
As per the following thread support for reading json files was removed just before shipping deno 1.0
https://github.com/denoland/deno/issues/5633
However, you can use the following syntax for reading a json file
Deno.readTextFile('./file.json').then(data => {
console.log(JSON.parse(data))
})
or
const data = JSON.parse(Deno.readTextFileSync('./file.json'));
Also, be sure to run the file containing above code with --allow-read
flag. Otherwise you will ge a permission denied error
deno run --allow-read index.ts
Since Deno 1.17 JSON can now once again be imported in ESM. Import assertions must now be used:
import data from "./file.json" assert { type: "json" };
console.log(data);
For more info, see https://examples.deno.land/importing-json.
As an alternative to Afeef's answer, since a JSON
file is a valid object literal, you can add export default
to it and change the extension to .js
.
from settings.json
{
"something": {
"foo": "bar"
}
}
to settings.js
export default {
"something": {
"foo": "bar"
}
}
And now you can can use import
import settings from './settings.js'
console.log(typeof settings) // object
constole.log(settings.something.foo) // bar
The upside, aside from being shorter, is that you don't need --allow-read
access