2014-07-18 4 views
0
[{"name":"se","value":"test1"},{"name":"model","value":"test2"},{"name":"filter_preference","value":"test3"},{"name":"seved","value":"test4"}] 

나는 json이 있고, 나는 그것을 분석하고 "세그먼트"=> "test1" 등등을 얻고 싶습니다.PHP에서 Json 데이터를 구문 분석하는 방법?

내가 행한이

$json2= json_encode($loadFilter); 
    $json2 = json_decode($json2, true); 

    foreach ($json2->$key as $value) 
    { 
     echo $key ."=>".$value; 
    } 

항상의 foreach에 대한 공급 잘못된 인수를 받고()!

나는 WP ajax 콜백을하고있다.

답변

3

foreach 구문이 $ 키에 액세스하는 데 잘못되었습니다. 귀하의 의견에서

foreach ($json2 as $key => $value) { 
    echo $key ."=>".$value; 
} 

편집 :

당신은 귀하의 질문에 "진짜"형식을 포기하지 않았다, 당신의 배열은 'filter_preference'에 포함되어 있습니다, 그래서 당신은 $ json2 [ 'filter_preference을 반복해야 '].

foreach ($json2['filter_preference'] as $key => $value) { 
    echo $key ."=>".$value; 
} 
+0

:이 위해 배열을 사용하려면

은 다음 다음 코드를 사용하여 배열에 객체를 변환 할 수 있습니다 Thx는 회신을 위해 노력했지만 열의 이름 인 key filterpreference를 얻었고 나머지는 값 이었지만 buthow는 "세그먼트"- "test1"에 연결할 수 있습니까? – user3042036

+0

@ user3042036 $ loadFilter 변수의'var_dump'를 추가 할 수 있습니까? – Sugar

+0

개체 (stdClass)를 얻습니다. # 7188 ([ "filter_preference"] => 문자열 (378) ""[{\\\ "name \\\": \\\ "segment \\\", \\\ "value \\\": \\\ "Test1 \\\"}, {\\\ "name \\\": \\\ "model \\\", \\\ "value \\\" ": \\\"\\\ "}, \\\"name \\\ ": \\\"filter_preference \\\ ", \\\"value \\\ ": \\\"Test2 \\ \ "}]" " } – user3042036

1

하위 배열의 키 값을 매핑해야합니다. 이 시도 :

foreach ($json2 as $key=>$value) 
     { 
      echo $key ."=>".$value; 
     } 
+0

답장을위한 Thx, 나는 노력했다. 그리고 나는 열의 이름 인 key filterpreference를 얻는다. 그리고 나머지는 값이지만, 어떻게 "세그먼트"- "test1"에 도착할 수 있는가?! – user3042036

0

여기에 한 가지 이상한 제안 :

function objectToArray($d) { 
     if (is_object($d)) { 
      // Gets the properties of the given object 
      // with get_object_vars function 
      $d = get_object_vars($d); 
     } 

     if (is_array($d)) { 
      /* 
      * Return array converted to object 
      * Using __FUNCTION__ (Magic constant) 
      * for recursive call 
      */ 
      return array_map(__FUNCTION__, $d); 
     } 
     else { 
      // Return array 
      return $d; 
     } 
    } 

$array_new = objectToArray($json2); 

http://wonderphp.wordpress.com/2014/03/20/convert-object-to-array-and-vice-versa/

관련 문제