2014-01-28 3 views
1

JSON을 특정 방식으로 포맷해야하는 API를 사용하고 있습니다. 디스플레이 목적으로 간소화되었습니다.PHP의 JSON 배열에 대괄호를 추가해야합니다.

PHP를 통해이 작업을 수행하는 방법을 알고 싶습니다. 현재 array()의 중첩 된 집합을 사용하고 그 배열 값에 json_encode()을 사용하고 있습니다. 여기

{ 
"value1": "1", 
"value2": "2", 
"value3": "3", 
"value4": 
    { 
     "value4a": 
      { 
       "value4aa": "1", 
       "value4ab": { 
        "value4aba": { 
         "value4abaa": "1", 
         "value4abab": "2", 
         "value4abac": "3", 
         "value4abad": "4" 
        } 
       } 
      } 
     , 
     "value4b": { 
      "value4ba": "1", 
      "value4bb": "2", 
      "value4bc": "3" 
     } 
    } 
} 

일이야 json_encode($data);

JSON 포맷에서

내가 내가 기본적으로 돌아 오는 대괄호를 볼 온라인을 검토 한 결과 모든 곳

{ 
"value1": "1", 
"value2": "2", 
"value3": "3", 
"value4": [ 
    { 
     "value4a": [ 
      { 
       "value4aa": "1", 
       "value4ab": { 
        "value4aba": [ 
         { 
          "value4abaa": "1", 
          "value4abab": "2", 
          "value4abac": "3", 
          "value4abad": "4" 
         } 
        ] 
       } 
      } 
     ], 
     "value4b": { 
      "value4ba": "1", 
      "value4bb": "2", 
      "value4bc": "3" 
     } 
    } 
] 
} 

를 원하지만 내가 무엇을 특정 배열에서 필요합니다. 나는이 질문을하는 법을 정확하게 모르겠다. 그래서 나는 정보 부족이나 어리석은 질문에 대해 미리 사과한다.

+3

결과가 모든'{'및'} '괄호로 구성되었는지 확인하십시오? 내가 여기 (http://ideone.com/npg3AI) 할 때''[[{ "test1": "1", "test2": "2"}]]] ' – crush

+2

게시 된 JSON 문자열은 유효한 JSON입니다. PHP *가 실제로 만드는 것은'[[{ "test1": "1", "test2": "2"}]]''입니다. 정확히 * 여기서 문제가 무엇입니까? –

+0

개체의 속성 이름을 정의하지 않고 개체를 개체 내부에 포함 할 수 없습니다. 예를 들어'{ "obj": { "children": [{ "children": [{ "test1": "1", "test2": "2"}}}}}} ' – crush

답변

0

json_decode를 사용하여 PHP가 json을 빌드하는 데 필요한 것을 살펴 보았습니다. 이 내가 무엇을 가지고 있습니다 :

stdClass Object 
(
    [value1] => 1 
    [value2] => 2 
    [value3] => 3 
    [value4] => Array 
     (
      [0] => stdClass Object 
       (
        [value4a] => Array 
         (
          [0] => stdClass Object 
           (
            [value4aa] => 1 
            [value4ab] => stdClass Object 
             (
              [value4aba] => Array 
               (
                [0] => stdClass Object 
                 (
                  [value4abaa] => 1 
                  [value4abab] => 2 
                  [value4abac] => 3 
                  [value4abad] => 4 
                 ) 

               ) 

             ) 

           ) 

         ) 

        [value4b] => stdClass Object 
         (
          [value4ba] => 1 
          [value4bb] => 2 
          [value4bc] => 3 
         ) 

       ) 

     ) 

) 

을 그리고 이것은 당신의 JSON 구축하기 위해 코드를 인도 표준시 : (http://writecodeonline.com/php/ 테스트)

$o = new stdClass(); 
$o->value1 = "1"; 
$o->value2 = "2"; 
$o->value3 = "3"; 
$o->value4 = array(); 
$o->value4[0] = new stdClass(); 
$o->value4[0]->value4a = array(); 
$o->value4[0]->value4a[0] = new stdClass(); 
$o->value4[0]->value4a[0]->value4aa = "1"; 
$o->value4[0]->value4a[0]->value4ab = new stdClass(); 
$o->value4[0]->value4a[0]->value4ab->value4aba = array(); 
$o->value4[0]->value4a[0]->value4ab->value4aba[0] = new stdClass(); 
$o->value4[0]->value4a[0]->value4ab->value4aba[0]->value4abaa = "1"; 
$o->value4[0]->value4a[0]->value4ab->value4aba[0]->value4abab = "2"; 
$o->value4[0]->value4a[0]->value4ab->value4aba[0]->value4abac = "3"; 
$o->value4[0]->value4a[0]->value4ab->value4aba[0]->value4abad = "4"; 
$o->value4[0]->value4b = new stdClass(); 
$o->value4[0]->value4b->value4ba = "1"; 
$o->value4[0]->value4b->value4bb = "2"; 
$o->value4[0]->value4b->value4bc = "3"; 

$json = json_encode($o); 

예를 들어 for 루프에서, 더 동적으로 만들하기를,

$num = "1"; 
$o->{"value$num"} = $num; 
관련 문제