简体   繁体   English

我想用nodejs解析这个json数据,但是得到未定义的错误

[英]i want to parse this json data with nodejs but gets error undefined

i used this code in nodejs to get data from json but gets error and say undefined 我在nodejs中使用此代码从json获取数据,但出现错误并说未定义

 var obj = {payload:'fp_2'}; var myJSON = JSON.stringify(obj); console.log(myJSON.payload); //output: undefined 

and i have same error in javascript 和我在JavaScript中有同样的错误

 <!DOCTYPE html> <html> <body> <p id="demo"></p> <script> var obj = {payload:'fp_2'}; var myJSON = JSON.stringify(obj); document.getElementById("demo").innerHTML = myJSON.payload; </script> </body> </html> 

what is my error? 我的错误是什么? can any one help me... 谁能帮我...

What happens in both your example is you are trying to get property "payload" from a string, which does not have this kind of property. 在您的两个示例中发生的都是您试图从不具有这种属性的字符串中获取属性“有效负载”。 The method JSON.stringify() creates string from any given object, so your custom object with property "payload" was transformed to JS string object, which does not have it anymore. JSON.stringify()方法从任何给定对象创建字符串,因此具有“ payload”属性的自定义对象已转换为JS字符串对象,该对象不再具有该字符串。

This is the list of properties, that JS string has: 这是JS字符串具有的属性列表:

  • constructor 构造函数
  • length 长度
  • prototype 原型

You can find definition of each property and read more about strings in JS with this link: W3 Schools JS string 您可以通过以下链接找到每个属性的定义,并详细了解JS中的字符串W3 Schools JS字符串

If you want to use "payload" from your custom object, you don't need to JSON.stringify() it. 如果要使用自定义对象中的“有效载荷”,则不需要JSON.stringify() Just use it: 只需使用它:

var obj = {payload:'fp_2'};
console.log(obj.payload);

// Or in your html example
var obj = {payload:'fp_2'};
document.getElementById("demo").innerHTML = obj.payload;

obj is already object, you can obj已经是对象,您可以

var obj = {payload:'fp_2'};
console.log(myJSON.payload);

to parse string to object use JSON.parse 将字符串解析为对象使用JSON.parse

var str = '{"payload": "fp_2"}';
var myJSON = JSON.parse(str);
console.log(myJSON.payload);

JSON.stringify used to convert obejct to string JSON.stringify用于将obejct转换为字符串

var obj = {payload:'fp_2'};
var str = JSON.stringify(obj);
console.log(str);
// {"payload":"fp_2"}

write this for nodejs 为nodejs写这个

var obj = {payload:'fp_2'};
console.log(obj.payload);

write this for script file 为此写脚本文件

<script>

var obj = {payload:'fp_2'};
document.getElementById("demo").innerHTML = obj.payload;

</script>

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

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