2010-12-09 7 views
1

저는 PHP에서 파일을 비동기 적으로 게시하기 위해 자바 스크립트에서 일부 데이터를 가져 오려고 시도했습니다. 데이터를 가지고 무엇을하려고 시도조차하지 않고, 단지 ajax 호출에서 빠져 나올 var_dump 일뿐입니다. NULL은 계속 반복됩니다.Javascript의 JSON이 PHP에서 디코딩되지 않습니다.

JSON을 JSONLint와 비교해 보았습니다. 유효성을 검사했습니다. 나는이 작업은 JSON.stringify에서 내 JSON을 받고 있어요 - 방화범이 내게 말하길 내가 다음을 받고 있어요 :

{"items":[["sa1074","1060"],["sa1075","1061"]]} 

내가 해봤 PHP는 : // 입력뿐만 아니라 json_decode_nice을 기능에 대한 PHP 매뉴얼 의견에서 , 및 utf8_encode 사용하여 시도했다 - 내 JSON 뭔가 잘못된 무엇입니까?

편집 : Derpity 디 아마이 게시물을 좀 더 하하 계획해야합니다. 여기 내 PHP

function json_decode_nice($json, $assoc = FALSE){ 
$json = str_replace(array("\n","\r"),"",$json); 
$json = preg_replace('/([{,])(\s*)([^"]+?)\s*:/','$1"$3":',$json); 
return json_decode($json,$assoc); 
} 
if (isset($_POST['build'])){ 
    $kit = file_get_contents('php://input'); 
    var_dump(json_decode_nice($kit)); 
} 

(PHP에서 제안 수동 주석을 사용하여) 그리고 JS 그것을 만드는 데 사용되는 : 또한

 var jsonKit = JSON.stringify(kit); 
    $.post("kits.php?", {"build" : jsonKit}, 
     function(data) { 
      $("#kitItems").html(data); 
     }); 

: 우리의 호스트는 PHP 5.2에 - 나는 업로드 할 때 나는 이것을 발견 완벽하게 좋은 레드 빈 클래스 만 폭발 할 수 있습니다. 기존의 redbean을 다시 구현해야했습니다. 우리 호스트는 체포되었습니다.

해결 : 모든 사람에게 감사의 말을 전했습니다. $ _POST에서 슬래시로 인용문을 이스케이프 처리하고 json_decode가 질식하고 있다고 생각했습니다. 디코딩 전에이 행을 추가하면 문제가 해결됩니다. 또한 연관 배열을 반환하기 위해 true를 설정하는 것을 잊었습니다. 감사! 코드를 보지 않고

$kit = str_replace('\\', '', $kit); 
+1

당신이 전화를 걸 특히 어떻게 더 많은 코드를 제시해주십시오. 'var_dump ($ _ POST)'가 NULL이되면, 문제는 더 일찍 체인 –

+0

JS와 PHP를 게시하십시오. :) – Alex

+0

'json_last_error()'와 친구가되는 것을 잊지 마라. 문제는 다른 곳에있는 것처럼 들린다. – mario

답변

2

- 난 그냥 당신이 당신의 json_decode()trueassoc 변수를 사용하고 ... 여기 같은데요? 내가 뭔가를 해독하려고 꽤 많은 시간 동안 디코딩 내 처음으로 난처한 상황에 빠진했다

<?php json_decode($jsonString, true); ?> 

,

관련 문제