React-Native-fs:如何读取JSON文件内容



以下是我的代码,该代码读取已下载并存储在" temoraryDirectorypath"中的JSON文件。

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 {_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

如何从该承诺对象中读取内容?

为什么不以"导入"

导入它
import AnyName from './pathToYourJSONfile';

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

您已经知道RNFS.readFile()返回Promise

因此,您只需要学习如何使用Promise

https://developer.mozilla.org/en-us/docs/web/javascript/reference/global_objects/promise/promise/then

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);
      })
  });

我遇到了相同的问题,并设法最终获得了以下内容的内容:

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'

相关内容

  • 没有找到相关文章

最新更新