【问题标题】:How to parse my json object如何解析我的 json 对象
【发布时间】:2017-09-25 01:30:41
【问题描述】:

我的程序将一些 JSON 发送到我的 API(工作正常):

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);

【问题讨论】:

  • contentResultObject 应该是一个 JSON 对象。此外,result 默认应该是 JSON 对象
  • 我不知道为什么你的结果有问题?但我已经测试了它的工作原理..
  • 你试过JSON.parse吗?
  • 您的 JSON 字符串看起来像是被编码了两次。
  • @nikc.org 嗯...我该如何解决这个问题?

标签: javascript reactjs asp.net-web-api


【解决方案1】:

contentResult 的输出看起来像您的有效负载已被双重编码。您可以通过记录typeof contentResultObject 来验证这一点,它应该显示string

要解决此问题,您最好解决服务器上的双重编码问题,但如果不能,您可以简单地应用 JSON.parse 两次。

【讨论】:

  • 它声明字符串
猜你喜欢
  • 2012-09-28
  • 2017-09-24
  • 2018-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多