Javascript 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

我有以下来自HTTP请求的JSON字符串:

{ '{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,键必须用双引号引起来。