sourcecode

json 인코딩 문자열 내에서 서브 어레이 데이터 주위에 대괄호를 추가하는 방법은 무엇입니까?

codebag 2023. 3. 29. 21:27
반응형

json 인코딩 문자열 내에서 서브 어레이 데이터 주위에 대괄호를 추가하는 방법은 무엇입니까?

API에 액세스하려고 할 때 JSON 어레이를 다음과 같이 해석해야 합니다.

{"item":[{"id":"123456", "name":"adam"}]}

하지만 내가 다음 코드를 할 때

$data = array("item" => array("id" => "123456", "name" => "adam"));
echo json_encode($data);

다음과 같이 각 괄호 없이 json 배열을 반환합니다.

{"item":{"id":"123456","name":"adam"}}

이 문제를 해결하는 방법을 찾기 위해 몇 시간을 소비했지만 해결책이 떠오르지 않습니다.

다른 것에 싸야 한다array:

$data = array("item" => array(array("id" => "123456", "name" => "adam")));

이는 동등한 PHP 5.4 어레이 구문을 사용하면 더욱 이해하기 쉬워집니다.

$data = [ "item" => [ ["id" => "123456", "name" => "adam"] ] ];

이것을 JSON과 비교합니다.

        { "item":   [ {"id":"123456", "name":"adam"      } ] }

설명해야 할 것은 PHP 어레이 중 하나가 어레이로 남아 있는 이유뿐입니다.[]다른 두 개가 객체로 변환되는 동안 JSON에서{}다만, 메뉴얼에는 이미 기재되어 있습니다.

배열을 인코딩할 때 키가 0부터 시작하는 연속 숫자 시퀀스가 아닌 경우 모든 키가 문자열로 인코딩되어 각 키와 값의 쌍에 대해 명시적으로 지정됩니다.

이 글을 읽기 전에 저는 다음과 같은 말을 했습니다.

echo json_encode($data);

이 투고를 읽은 후:

echo json_encode(array($data));

괄호는 JSON 객체의 시작과 끝에 표시됩니다.

이 방법을 사용하면 편리하기 때문에 어레이에 항목을 추가할 수 있습니다.

$val = array();
$val["id"]="123456";
$val["name"]="adam";

$data = array();
$data["item"][]=$val;

echo json_encode($data);

아래에 출력됩니다.

{"item":[{"id":"123456", "name":"adam"}]}

언급URL : https://stackoverflow.com/questions/15559735/how-to-add-square-braces-around-subarray-data-inside-of-a-json-encoded-string

반응형