【问题标题】:Corrupted JSON HTTP response损坏的 JSON HTTP 响应
【发布时间】:2017-12-13 07:47:53
【问题描述】:

我收到一个网站的 HTTP 请求,内容类型是 JSON。但是,我得到了一个嵌套的 JSON,它是一个 unicode 并导致一致性问题。

这是一个例子:

{"key1":"value",
"key2":"value",
"key3":{
      u'key31':u'value',
      u'key32':u'value'}} 

这让我想起了 python 2.7 的麻烦,但我不知道如何修复这个 JSON。我正在使用 C# 来解析它。一切正常,直到我尝试访问 key3。 内容应该是 JSON 对象类型,但它被认为是一个值或一个字符串。

感谢您的帮助。如果它实际上已损坏或我是否错误地解析它,有没有办法修复它?

【问题讨论】:

  • 那么问题是什么?如何使用正则表达式或类似方法修复这个无效的 json?
  • 主要是如果这实际上已损坏,如果是,如何通过 C# 处理,将正则表达式作为最后一个选项。
  • 是的,它已损坏。最好的方法当然是修复发送此 json 的服务器,或者如果那不是您的服务器,请让负责人这样做。

标签: c# python json unicode


【解决方案1】:

你说得对,这个 json 对象不完整/没有正确的语法。您缺少一个结束的 '}' 字符。

您如何解析数据?试试看this documentation

【讨论】:

  • 是的,对不起,省略括号是我的错。我得到的回复有正确的符号。这只是一个先验的 unicode 问题。我通过以下方式获取内容: req.Content.ReadAsAsync();然后,我只是将内容发送到另一个实例。
【解决方案2】:

您的 json 对象的格式无效,应该如下所示

   {  
   "key1":"value",
   "key2":"value",
   "key3":{  
      " u'key31'":"u'value'",
      "u'key32'":"u'value'"
   }
}

你有没有机会从 python 转储中得到这个 json?因为 Python 的 unicode 文字不是有效的 JSON,单引号也不是

【讨论】:

  • 这不是我的服务器所以我真的不知道。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多