2017-08-06 131 views
0

我用的NodeJS这个代码从JSON数据,但得到的错误说未定义我想分析与的NodeJS这个JSON数据,但得到错误未定义

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

和我有相同的错误在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>

我的错误是什么?任何人都可以帮助我......

+0

JSON.stringify()的'结果'只是一个简单的字符串;没有“有效载荷”属性。你可以检查'obj.payload',因为这是有道理的。一旦你'.stringify()'它不过你只有一个字符串。没有必要“解析”用对象初始化表达式声明的对象;该对象已经存在并准备好使用。 – Pointy

+0

你知道'JSON.stringify(obj)'是做什么的吗?它将对象串联起来。它返回一个字符串。如果您只需要'有效载荷'属性,则不需要串联。 – PeterMader

+0

是的我知道,我使用nodejs我已经使用obj.payload但不工作,并得到这个错误“TypeError:无法读取属性'有效载荷'undefined 在receivedMessage(/ home/ubuntu/workspace/index。js:535:20)“ –

回答

0

在你的例子中会发生什么,你正试图从一个没有这种属性的字符串中获取属性“payload”。 方法JSON.stringify()从任何给定的对象创建字符串,所以你的自定义对象的属性“有效载荷”被转换为JS字符串对象,它不再有了。

这是属性的列表中,JS字符串有:

  • 构造
  • 长度
  • 原型

你可以找到每个属性的定义和了解更多关于字符串JS与此链接:W3 Schools JS string

如果你想使用“有效载荷”来自你的自定义对象,你不需要JSON.stringify()它。只要使用它:

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; 
+0

是的我知道,我使用nodejs我已经使用obj.payload但不工作,并得到这个错误”TypeError:无法读取属性'payload'undefined在receivedMessage(/ home/ubuntu/workspace/index .js:535:20)“ –

+0

@PawanOsman你能举出代码的例子吗,它给你TypeError obj为undefined? – Mark

0

obj已经对象,你可以

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

解析字符串对象使用JSON.parse

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

JSON.stringify用于obejct转换为字符串

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

我使用nodejs我已经使用obj.payload但不工作,并得到这个错误”TypeError:Can not read property'有效载荷'未定义在receivedMessage(/home/ubuntu/workspace/index.js:535:20)“ –

0

写这篇文章的

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

写这个脚本文件

<script> 

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

</script> 
+0

我使用nodejs我已经使用obj.payload但不工作,并得到这个错误”TypeError:无法读取属性'有效载荷' undefined at receivedMessage(/home/ubuntu/workspace/index.js:535:20)“ –

+0

这个错误发生在你定义了变量但没给它赋值时你试图访问值 –

+0

但我知道这个有效载荷variabl e有一个值,等于“fp_2”我想得到它但得到这个错误。我的json数据来自请求。我有消息机器人我想检测快速回复有效载荷。我得到的QrPayload变量等于“{payload:'fp_2'}”但是当我使用QrPayload.payload得到那个错误 –

相关问题