从本地 json 文件中获取数据

Posted

技术标签:

【中文标题】从本地 json 文件中获取数据【英文标题】:Fetching data from local json file 【发布时间】:2020-03-24 08:23:03 【问题描述】:

我在 React 导入中找不到模块时遇到问题。这是我从文件中获取的 API:

[   
    
        "poolNumber": "1",
        "sender": "Damir",
        "notRoutedReason": "NumberDoesntExist",
        "sentDateTime": "2019-08-13T08:01:48.1535075Z",
        "requestedDeliveryReportMaskText": "Submitted",
        "deliveryReportReceivedDateTime": "2019-08-13T08:01:48.1535075Z",
        "isUnicode": "FALSE",
        "messageUUID": "4889e632-a314-45e2-89fd-35b07b4f9ff2"
    ,
    
        "poolNumber": "1",
        "sender": "Damir",
        "notRoutedReason": "NumberDoesntExist",
        "sentDateTime": "2019-08-13T08:01:46.3254032Z",
        "requestedDeliveryReportMaskText": "Submitted",
        "deliveryReportReceivedDateTime": "2019-08-13T08:01:46.3254032Z",
        "isUnicode": "FALSE",
        "messageUUID": "7f48626f-7dfe-4772-99e6-3a4c1df15e0e"
    
]

然后我尝试在导入下调用它,以便我可以记录(数据)..

import React from 'react'

import dataJSON from './data.json'
    const getData = async () => 
        const response = await fetch(dataJSON)
        const data = await response;
        return getData
    

但我无法获取数据,因为它没有获取我需要的模块。 我该如何解决这个问题?

【问题讨论】:

您使用的是什么捆绑器?例如,create-react-app 使用 webpack + 一些配置,应该可以让您轻松导入 json 我认为你不需要使用 fetch 来导入本地 json 文件。 How to import a json file in ecmascript 6?的可能重复 我正在使用来自 create-react-app 的 webpack... 是否有一些解决方案可以修复导入 json 文件的配置... @messerbill 尝试了该解决方案.. 并得到错误 Expected a JSON object, array or literal. 【参考方案1】:

如果您使用的是Create React App,这应该可以正常工作:

import dataJSON from './data.json'

console.log(dataJSON )

【讨论】:

不起作用...它给我一个错误说它找不到模块...但是如果我声明带有 js 扩展名的文件并导出默认 dataJSON... 这很奇怪,通常安装'json-loader'模块可以解决这个问题,但是CRA已经有了,可能你使用的是旧版本的CRA,试试npm install --save-dev json-loader 是否已经...但是有同样的错误...我将它作为一个js文件来做,然后只导出默认的let dataJSON并在组件中对其进行字符串化...这是一个很好的解决方案? 是的,这行得通,但这不是你想要的:) 不是,但我厌倦了试图找出为什么它不能正常工作...... :)【参考方案2】:

您可以使用基于 axios / Promise 的 HTTP 客户端浏览器和 node.js 来处理 React componentDidMount 生命周期方法中的请求。

https://github.com/axios/axios

但我同意在 CreatReactApp 中更容易做到:

import info from './data.json';

【讨论】:

【参考方案3】:

如果您使用 create-react-app,只需导入

import dataJson from './dataJson.json';

请看我的沙盒import json in react app

【讨论】:

它没有将 JSON 视为一个模块...我首先尝试过,知道它应该是什么以及如何工作,但它没有...【参考方案4】:

Tnx all 试图帮助我,但我的解决方案是将 .json 文件放在公用文件夹中,然后将其导入 App.js...Way 引擎没有引发错误,我使用 async/await 解决了它。

【讨论】:

【参考方案5】:

对于使用导入和导出语句,你必须使用es6,为此,需要babal。

也许您必须将 babel-plugin-import 添加到您的项目中:read if you have and how to install and configure here here)

【讨论】:

我已经通过使用 react-create-app 创建一个应用安装了 babel,所以不是这样...

以上是关于从本地 json 文件中获取数据的主要内容,如果未能解决你的问题,请参考以下文章

pyhton 从web获取json数据 保存到本地然后再读取

从本地 Json 文件 ionic 3 获取数据 [重复]

使用 jQuery $.getJSON() 从 Vuejs 方法中的本地 json 文件获取数据

使用改造从(本地)android资产文件夹获取Json数据

无法从外部本地 json 获取数据

从本地 json 文件中获取数据并显示在 html asp.net mvc 中