使用供应商提供的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"]}}
是否有可能从我这边删除无用的反斜杠和引号?似乎供应商无法改变格式。
答案 0 :(得分:0)
看起来API返回编码为JSON对象的JSON字符串。这意味着,您首先需要解码“外部”对象,然后对$obj['d']
进行JSON解码,因为它是一个JSON字符串。
json_decode(json_decode($json)->d)
显然有人应该修复API以不返回双重编码的JSON。