125

如何存储 JSON 等本地文件,然后从控制器获取数据?

4

7 回答 7

177

从 React Native 0.4.3 开始,您可以像这样读取本地 JSON 文件:

const customData = require('./customData.json');

然后像普通的 JS 对象一样访问 customData。

于 2015-05-16T19:06:35.853 回答
133

ES6/ES2015 版本:

import customData from './customData.json';
于 2016-06-13T04:35:58.273 回答
24

对于 ES6/ES2015,您可以像这样直接导入

// example.json
{
    "name": "testing"
}


// ES6/ES2015
// app.js
import * as data from './example.json';
const word = data.name;
console.log(word); // output 'testing'

如果你使用 typescript,你可以像这样声明 json 模块:

// tying.d.ts
declare module "*.json" {
    const value: any;
    export default value;
}
于 2018-05-26T07:00:10.060 回答
13

用这个

import data from './customData.json';
于 2018-01-17T06:58:57.533 回答
5

获取本地 JSON 文件的以下方法 -

ES6版本:

import customData from './customData.json'; 或者import customData from './customData';

如果它在.js文件内部而不是.json像这样导入 -

import { customData } from './customData';

有关更多说明/理解,请参阅示例 -现场工作演示

于 2020-09-06T07:29:23.637 回答
3

也许您可以使用AsyncStorage setItemgetItem ...并将数据存储为字符串,然后使用json 解析器 将其再次转换为 json ...

于 2015-04-05T00:26:17.467 回答
1

看看这个 Github 问题:

https://github.com/facebook/react-native/issues/231

他们正在尝试require非 JSON 文件,尤其是 JSON。现在没有方法可以做到这一点,所以你要么必须使用 @CocoOS 提到的 AsyncStorage,要么你可以编写一个小的原生模块来做你需要做的事情。

于 2015-04-05T10:06:33.653 回答