简体   繁体   English

如何从node.js中的json文件获取对象?

[英]How to get object from json file in node.js?

i've been looking for this for quite some time and couldn't really find anything. 我已经找了很长时间了,真的找不到任何东西。 Most guides/doc assumes i am using same app but this is not a case. 大多数指南/文档都假定我正在使用同一应用程序,但事实并非如此。 So i have made node.js api with test call GET api.raidcore.xyz/items which returns an array as you'd expected: Javascript {"data":[{"_id":"5834551dfa44228b52645f43","itemDesc":"lorem ipsum dolor sit amet","itemName":"test item","__v":0}]} Now what i want to do is display jst itemName to make list or whatever. 因此,我通过测试调用GET api.raidcore.xyz/items制作了node.js api,该API返回了您期望的数组: Javascript {"data":[{"_id":"5834551dfa44228b52645f43","itemDesc":"lorem ipsum dolor sit amet","itemName":"test item","__v":0}]}现在,我要显示的是显示jst itemName以便进行列表或其他操作。

res.on('data', function(data){
 var json = json.parse(data);
 let name = json.itemName;
 console.log(name);
}

returns undefined object. 返回未定义的对象。 if i log data alone, it displays everything ok. 如果我仅记录数据,则显示一切正常。 So how do i actually select what i want to show? 那么我该如何实际选择要显示的内容呢?

You are using the same var name for json var json = json.parse(data); 您正在为json使用相同的var名称var json = json.parse(data); you should be using a different name ie parsedJson or something like that, you should also use JSON.pase if you intend to use the code in a case sensitive OS 您应该使用其他名称,例如parsedJson或类似的名称,如果您打算在区分大小写的OS中使用代码,则还应该使用JSON.pase

Your data looks like this: 您的数据如下所示:

{
  "data": [
    {
      "_id": "5834551dfa44228b52645f43",
      "itemDesc": "lorem ipsum dolor sit amet",
      "itemName": "test item",
      "__v": 0
    }
  ]
}

Your JSON object has one property called data . 您的JSON对象具有一个称为data属性。

data is an array with one element. data是具有一个元素的数组。

That element is a object with four parameters. 该元素是具有四个参数的对象。

So the values you want are available like this: 因此,所需的值可用如下所示:

let data = '{"data":[{"_id":"5834551dfa44228b52645f43","itemDesc":"lorem ipsum dolor sit amet","itemName":"test item","__v":0}]}';
let json = JSON.parse(data);
let name = json.data[0].itemName;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM