2016-07-28 17 views
0

が、私はそのようにフォーマットされたJSON応答を持っているサプライヤーが提供するAPIを使用して返信:二重引用符やバックスラッシュJSONは

問題に原因がJMS(PHP)のためにコンテンツをデシリアライズしようとしていること
{"d":"{\"IdProduct\":0,\"Status\":0,\"Errors\":[\"B_MESSAGE_INVALID_REQUIRED_FIELDS\"]}"} 

dはオブジェクトではなく文字列と見なされます。

私は(アレイとjson_encodeでPHPからJSONを作成しようとした)とすべてがデシリアライズ方法で素晴らしい作品:

{"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) 

明らかに、誰かがダブルエンコードされたJSONを返さないようにAPIを修正する必要があります。

関連する問題