안녕하세요, json_encode
을 사용하여 json 형식으로 데이터를 다시 전달하려고합니다.Php에서 Json을 반환 중 []
는 그러나이 같은 반환 할 것 같다 : 최종 사용자들이 대괄호없이 응답을 기대 말했다 그러나
[{‘county’:’us’,’sector’:’retail’}]
.
어떻게해야합니까?
감사합니다.
안녕하세요, json_encode
을 사용하여 json 형식으로 데이터를 다시 전달하려고합니다.Php에서 Json을 반환 중 []
는 그러나이 같은 반환 할 것 같다 : 최종 사용자들이 대괄호없이 응답을 기대 말했다 그러나
[{‘county’:’us’,’sector’:’retail’}]
.
어떻게해야합니까?
감사합니다.
인코딩하는 값에 따라 달라집니다 ... json_encode
은 JSON_FORCE_OBJECT
옵션을 사용할 수 있지만 그게 내가 원하는대로 볼 수없는 것에서 볼 수 있습니다. 대괄호 "를 래퍼 객체에 추가합니다. 그럼에도 불구하고, 당신은 시도하려는 경우 :
json_encode($value, JSON_FORCE_OBJECT);
편집 : 다른 사람이 말했듯이, json_encode($value[0])
당신이 원하는 것으로 보인다.
JSON_FORCE_OBJECT의 완벽한 트릭 덕분이라고 생각합니다. –
배열을 가정 할 수 있습니다 :
$data = [
'country' => 'us',
'sector' => 'retail',
];
그럼 그냥 그렇게 같은 json_encoded 배열을 반환 :
json_encode($data);
// {"country":"us","sector":"retail"}
그러나, 데이터 배열이 "중첩"그래서 같은 :
$data = [[
'country' => 'us',
'sector' => 'retail',
]];
다음 인코딩 된 첫 번째 요소를 반환하십시오.
json_encode($data[0]);
// {"country":"us","sector":"retail"}
필자가 실수로 데이터를 배열의 첫 번째 항목으로 저장하고있는 것을 경험했습니다.
는 예를 들어 당신이했을 수 있습니다
이$json_store = Array();
$json_store[] = Array('country' => 'us', 'sector' => 'retail');
$json = json_encode($json_store);
이에 대한 시험의 방법은 다음을 수행하는지 확인하는 것입니다
는 괄호 제거 : 만약 그렇다면
$json_encode($json_store[0])
을, 당신은했습니다 불필요하게 중첩 된 배열을 수정해야합니다. 위의 행을 사용하는 것은 데이터가 처음에 저장되는 방식을 수정하는 것이 좋으므로 피해야합니다.
은 json을 어떻게 생성하는지 코드를 공유합니까? –
출력하려고하는 배열의 예를 들려 줄 수 있습니까? 재미있는 사실은 json의 첫 번째 레이어로 배열을 사용하면 악용 될 수 있습니다. [OWASP 링크] (https://www.owasp.org/index.php/AJAX_Security_Cheat_Sheet#Always_return_JSON_with_an_Object_on_the_outside) – Andrew
'''? 정말? 나는'json_encode'가 그렇게 할 것이라고 생각할 수 없다. 또한 [mcve]를 포함하지 못했습니다. 우리가 보여주지 않은 코드로는 문제를 해결할 수 없습니다. – Quentin