2017-04-27 71 views
2

我的程序发送一些JSON我的API(工作正常):如何分析我的JSON对象

var result = await fetch('http://localhost:58553/api/Foo', { 
    method: 'POST', 
    headers: { 
    'Accept': 'application/json', 
    'Content-Type': 'application/json', 
    }, 
    body: JSON.stringify(this.state) 
});  

var contentResult = await result.text(); 

var contentResultObject = JSON.parse(contentResult); 

console.log(contentResult); 
console.log(contentResultObject); 
console.log(contentResultObject.code); 

console.log输出:

"{\"code\":1,\"probability\":0.985368549823761}" 
{"code":1,"probability":0.985368549823761} 
undefined 

任何理由,这是不工作?我的API只是返回一个字符串:

return JsonConvert.SerializeObject(result); 
+0

''contentResultObject应该是一个JSON对象。此外,'result'应该是默认的JSON对象 –

+0

我不知道为什么你和你的结果有问题吗?但我已测试它的工作.. – 2017-04-27 10:11:19

+0

你试过'JSON.parse'吗? – evolutionxbox

回答

0

你的contentResult输出看起来像你的有效载荷已经被双重编码。您可以登录typeof contentResultObject,这应该显示string验证这一点。

要解决你理想解决服务器上的双重编码问题的问题,但如果你不能,你可以简单地套用JSON.parse两次。

+0

它声明字符串 – Jason94