如何获取本地的大json数据?
我试过这个,但我没有成功:
var sa = require("./shared/resources/sa.json");
var array = new observableArrayModule.ObservableArray(sa);
如何获取本地的大json数据?
我试过这个,但我没有成功:
var sa = require("./shared/resources/sa.json");
var array = new observableArrayModule.ObservableArray(sa);
使用file-system模块读取文件,然后解析它JSON.parse()
:
var fs = require('file-system');
var documents = fs.knownFolders.currentApp();
var jsonFile = documents.getFile('shared/resources/sa.json');
var array;
var jsonData;
jsonFile.readText()
.then(function (content) {
try {
jsonData = JSON.parse(content);
array = new observableArrayModule.ObservableArray(jsonData);
} catch (err) {
throw new Error('Could not parse JSON file');
}
}, function (error) {
throw new Error('Could not read JSON file');
});
这是我如何在 NativeScript 应用程序中读取 75kb/250 000 个字符的大 JSON 文件的真实示例。
打字稿:
import {knownFolders} from "tns-core-modules/file-system";
export class Something {
loadFile() {
let appFolder = knownFolders.currentApp();
let cfgFile = appFolder.getFile("config/config.json");
console.log(cfgFile.readTextSync());
}
}
从 TypeScript 2.9.x 及以上版本开始(在 NativeScript 5.xx 中使用 3.1.1 及以上版本),我们现在可以resovleJsonModule
使用tsconfig.json
. 使用此选项,现在可以将 JSON 文件作为模块导入,并且代码更易于使用、阅读和维护。
例如,我们可以这样做:
import config from "./config.json";
console.log(config.count); // 42
console.log(config.env); // "debug"
我们需要做的就是使用 TypeScript 2.9.x 及更高版本并启用 tsconfig.json 中的属性
// tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
"resolveJsonModule": true,
"esModuleInterop": true
}
}
我只是想再添加一件事,这可能会更容易。您可以简单地将 JSON 文件的内容写入 data.js 文件或您想使用的任何名称,然后将其导出为数组。然后你可以只需要 data.js 模块。