【问题标题】:Double Quote and backslashes JSON reply双引号和反斜杠 JSON 回复
【发布时间】:2016-12-02 13:10:27
【问题描述】:

使用供应商提供的 API,我得到了格式如下的 JSON 回复:

{"d":"{\"IdProduct\":0,\"Status\":0,\"Errors\":[\"B_MESSAGE_INVALID_REQUIRED_FIELDS\"]}"}

在尝试使用 JMS (PHP) 反序列化时导致问题,因为 d 的内容不被视为对象而是字符串。

我曾尝试使用数组和 json_encode() 从 PHP 创建 json,反序列化方法一切正常:

{"d":{"IdProduct":123456,"Status":1,"Errors":["B_MESSAGE_INVALID_REQUIRED_FIELDS"]}}

是否可以从我这边删除无用的反斜杠和引号?似乎供应商无法更改格式。

【问题讨论】:

    标签: php json symfony jmsserializerbundle


    【解决方案1】:

    看起来 API 返回 一个 JSON 字符串编码成一个 JSON 对象。这意味着,您首先需要解码“外部”对象,然后对 $obj['d'] 进行 JSON 解码,因为它是 JSON 字符串。

    json_decode(json_decode($json)->d)
    

    显然有人应该修复 API 以不返回双重编码的 JSON。

    【讨论】:

      猜你喜欢
      • 2015-02-27
      • 1970-01-01
      • 2019-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-13
      • 1970-01-01
      相关资源
      最近更新 更多