Javascript JSON解析对象
我有以下来自HTTP请求的JSON字符串:Javascript JSON解析对象,javascript,json,Javascript,Json,我有以下来自HTTP请求的JSON字符串: { '{firstname:\'Joe\'}': '' } // output of console.log(req.body); 我已尝试使用以下方式将值打印到console: console.log(req.body.firstname); 但是它说这个值是未定义的。如何获取firstname的值 要查看客户端正在做什么,请查看它如何发送JSON请求: //angular2 headers.append('Content-Type', 'app
{ '{firstname:\'Joe\'}': '' } // output of console.log(req.body);
我已尝试使用以下方式将值打印到console:
console.log(req.body.firstname);
但是它说这个值是未定义的。如何获取firstname的值
要查看客户端正在做什么,请查看它如何发送JSON请求:
//angular2
headers.append('Content-Type', 'application/x-www-form-urlencoded');
this.http.post(
'http://192.168.1.45:3000/test',
JSON.stringify({firstname:'Joe'}), //This is the parameter I want
{headers:headers}
)
使用JSON.stringify将数组转换为JSON字符串,然后使用JSON.parse将字符串转换回数组
<html>
<head>
<script>
function gettz(){
var str=JSON.stringify({firstname:'Joe'});
console.log(str);
//Parse an object
dataObj = JSON.parse(str);
// get object property
console.log(dataObj.firstname);
}
</script>
</head>
<body>
<input type="button" id="button" value="PrintJson" onclick="gettz();">
</body>
</html>
函数gettz(){
var str=JSON.stringify({firstname:'Joe'});
console.log(str);
//解析对象
dataObj=JSON.parse(str);
//获取对象属性
console.log(dataObj.firstname);
}
当您收到响应时,您需要首先解析响应,因为它是以字符串形式出现的,所以请执行以下操作:
var parsedResponse = JSON.parse(req.body);
console.log(parsedResponse.firstname); //Now you can access the object
它似乎不是验证JSON
{firstname:\'Joe\}
是对象的键。。您显示的对象已经解析为JavaScript对象,或者是无效的JSON字符串。除此之外,:
前面的部分是键(因此您的键是{firstname:\'Joe\}
)。它表示响应已经错误,或者您在两者之间做了一些错误。您能发送完整的Json响应吗?我不确定为什么要进行下一次投票?为什么OP要从JavaScript对象创建Json字符串,以便在下一行将其转换回JavaScript对象?为什么不直接写dataObj='{firstname:'Joe'}'代码>?如果@user2924127希望使用解析json访问对象属性。类似于OOP的概念。当您以头文件的形式发送它时,它已经是字符串格式,您需要对它进行解析。在您可以访问它之后。如果{{firstname:\'Joe\}:''}
实际上是控制台.log(req.body)的输出
然后JSON.parse
将导致Uncaught SyntaxError:Unexpected token'
,因为对于JSON,键必须用双引号引起来。