2016-07-28 184 views
0

使用由供應商提供的API我有格式化那樣的JSON回覆:雙引號和反斜線JSON回覆

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

這導致問題試圖與JMS(PHP),因爲內容的反序列化時d不被視爲對象而是字符串。

我試圖創建JSON從PHP與陣列和json_encode()的一切與反序列化方法的偉大工程:

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

是否可以去除無用的反斜線和報價從我身邊?似乎供應商不能改變格式。

回答

0

它看起來像API返回一個JSON字符串編碼成一個JSON對象。意思是,你首先需要解碼「外部」對象,然後JSON解碼$obj['d'],因爲它是一個JSON字符串。

json_decode(json_decode($json)->d) 

顯然有人應該修復API以不返回雙重編碼的JSON。