2016-07-28 2 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) 

분명히 누군가는 API를 수정하여 이중 인코딩 된 JSON을 반환하지 않아야합니다.