首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >react-native-fs:如何读取json文件内容?

react-native-fs:如何读取json文件内容?
EN

Stack Overflow用户
提问于 2017-12-15 17:51:10
回答 3查看 1.7K关注 0票数 1

下面是我用来读取已经下载并存储在"TemporaryDirectoryPath“中的JSON文件的代码。

代码语言:javascript
复制
var fileName = getFileNameFromUrl(url);
RNFS.downloadFile({
  fromUrl: url,
  toFile: `${RNFS.TemporaryDirectoryPath}/`+fileName
}).promise.then(r => {

  var content = RNFS.readFile(`${RNFS.TemporaryDirectoryPath}/`+fileName, 'utf8');
  console.log(content);

});

我得到了一个"Promise“类型的对象,如下所示

代码语言:javascript
复制
Promise {_40: 0, _65: 0, _55: null, _72: null}
_40: 0
_55: "{"show_explanation":1,"answer_result":2, //More json content will be here}"
_65: 1
_72: null

如何从Promise对象中读取内容?

EN

回答 3

Stack Overflow用户

发布于 2017-12-15 18:07:15

为什么不直接用" import“来导入呢?

代码语言:javascript
复制
import AnyName from './pathToYourJSONfile';

我必须在这里写,添加评论的低代表!:/

票数 2
EN

Stack Overflow用户

发布于 2018-12-25 18:15:51

您已经知道了RNFS.readFile() return Promise

所以你只需要学习如何使用Promise

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then

代码语言:javascript
复制
var fileName = getFileNameFromUrl(url);
RNFS.downloadFile({
  fromUrl: url,
  toFile: `${RNFS.TemporaryDirectoryPath}/` + fileName
})
  .then(r => {
    RNFS.readFile(`${RNFS.TemporaryDirectoryPath}/` + fileName, 'utf8')
      .then(content => {
        console.log(content);
      })
  });
票数 0
EN

Stack Overflow用户

发布于 2019-11-27 18:36:20

我也遇到了同样的问题,最终通过以下代码片段获得了内容:

代码语言:javascript
复制
let asset_content = null;
try {
    await RNFetchBlob.fs.readFile(assetFile_path, 'utf8')
      .then((data) => {
        asset_content = data;
        console.log("got data: ", data);
      })
      .catch((e) => {
        console.error("got error: ", e);
      })
  } catch (err) {
    console.log('ERROR:', err);
}
const assets = JSON.parse(asset_content);

您可能还必须确保内容已另存为“utf8”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47829697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档