2014-04-10 5 views
0

자바 스크립트 페이지에서 json 객체를받는 PHP 페이지가 있지만 PHP에서 json을 디코딩 할 수 없습니다. $ arr [0] = [1,2,34,5,2]와 같이 PHP에서 json과 store를 디코딩하는 방법; $ arr [1] = [2,1,34,5,2]; $ arr [2] = [8,1,34,5,2]; PHP에서?php decode json array

after removing "myString = JSON.stringify(myObject);" 
echo $value; outputs "Array" 
echo $value[0]; outputs nothing 
echo $value->{"key"}; outputs nothing either 

how can i actually get the array contents? 

자바 스크립트 :

var mon=[1,2,34,5,2]; 
var tue=[2,1,34,5,2]; 
var wed=[8,1,34,5,2]; 
var myObject = {'key' :'value','key2':'value','key3':'value'}; 

myObject.key = mon; 
myObject.key2 = tue; 
myObject.key3 = wed; 

myString = JSON.stringify(myObject); //this line removed 

var jsonString = JSON.stringify(myObject); 

$.ajax({ 
    type: "POST", 
    url: "n3.php", 
    data: {data : jsonString}, 
    cache: false, 

    success: function(aaa){ 
     alert("OK"); 

     $("#pageContent").html(aaa);  
    } 
}); 

PHP :

<?php 
$value = json_decode($_POST['data']); 
echo $value;  //this echos the whole json object 
echo $value->{"key"}; //this outputs nothing 
?> 
+0

'echo $ value;'가주는 것을 게시 할 수 있습니까? –

+0

이제 echo $ value; "Array"를 제공합니다. 어떻게 배열 내용을 얻을 수 있습니까? – user1887339

+1

'var_dump ($ value)'를 시도하십시오. – deceze

답변

2

당신은 자바 스크립트 측에서 두 번 데이터를 인코딩 JSON 있습니다. PHP에서 json_encode을 한 번 호출하면 JSON 인코딩 된 객체가 반환됩니다. 그래서 echo $value은 전체 문자열을 출력합니다. 이 시점에서 PHP 배열 인 경우 "Array"를 출력하거나 객체 인 경우 오류가 발생하면 전체 내용을 출력하지 않습니다.

json_decode 다시 또는 Javascript로 이중 인코딩하지 마십시오.