使用供应商提供的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"]}}有没有可能从我这边去掉无用的反斜杠和引号?供应商似乎无法更改格式。
发布于 2016-07-28 16:49:23
看起来API返回了一个编码到JSON对象中的JSON字符串。这意味着,您首先需要对“外部”对象进行解码,然后对$obj['d']进行JSON解码,因为它是一个JSON字符串。
json_decode(json_decode($json)->d)显然,应该有人修复API,使其不返回双重编码的JSON。
https://stackoverflow.com/questions/38631337
复制相似问题