Par*_*ism 18 javascript json reactjs
如何通过JSON文件解析检索其所有数据并在我的代码中使用它?
我已经尝试导入该文件并尝试使用控制台记录它,但它只是打印对象{}:
import jsonData from "./file.json";
console.log(jsonData);
Run Code Online (Sandbox Code Playgroud)
这是我的file.json看起来像:
[
{
"id": 1,
"gender": "Female",
"first_name": "Helen",
"last_name": "Nguyen",
"email": "hnguyen0@bloomberg.com",
"ip_address": "227.211.25.18"
}, {
"id": 2,
"gender": "Male",
"first_name": "Carlos",
"last_name": "Fowler",
"email": "cfowler1@gnu.org",
"ip_address": "214.248.201.11"
}
]
Run Code Online (Sandbox Code Playgroud)
我希望能够访问每个组件的名字和姓氏,并在网站上打印.
fuz*_*uzz 23
var data = require('../../file.json'); // forward slashes will depend on the file location
Run Code Online (Sandbox Code Playgroud)
https://jsfiddle.net/c9wupvo6/
eri*_*2k8 11
使用 webpack 2.0.0+ 打包的应用程序(例如使用create-react-app 创建的应用程序)完全按照问题支持从 json 导入(请参阅此答案.
请注意import缓存结果,即使该结果被解析为 json,因此如果您修改该对象,其他导入它的模块也会引用同一个对象,而不是新解析的副本。
要获得“干净”的副本,您可以创建一个克隆它的函数,例如:
import jsonData from './file.json';
const loadData = () => JSON.parse(JSON.stringify(jsonData));
Run Code Online (Sandbox Code Playgroud)
或者,如果您正在使用lodash:
import jsonData from './file.json';
import { cloneDeep } from 'lodash';
const loadData = () => cloneDeep(jsonData);
Run Code Online (Sandbox Code Playgroud)
我也遇到了一个空的Object回来的问题.即使require按照上面的建议使用.
fetch 然而解决了我的问题:
fetch('./data/fakeData.json')
.then((res) => res.json())
.then((data) => {
console.log('data:', data);
})
Run Code Online (Sandbox Code Playgroud)
(截至今天,支持不是最佳的:http://caniuse.com/#feat=fetch)
| 归档时间: |
|
| 查看次数: |
60165 次 |
| 最近记录: |