2011-09-06 7 views
1

MYSQL 데이터베이스에 대한 JSON 문자열을 구문 분석하는 데 문제가 있습니다. 이는 서버에 전송되는 문자열 인 JSON [mArray JSonrepresentation]을 호출하기 전에JSON 문자열을 데이터베이스로 구문 분석합니다.

[{"Description":"Detta är mitt quiz!","Title":"Mitt Quiz","Category":"Music","Language":"Swedish","Difficulty":1},{"QuestionNr1":{"WrongAnswer3":"Visby","WrongAnswer1":"Stockholm","RightAnswer":"Uppsala","WrongAnswer2":"Umeå","Question":"Vilken stad bor jag i?"},"QuestionNr2":{"WrongAnswer3":"Visby","WrongAnswer1":"Stockholm","RightAnswer":"Uppsala","WrongAnswer2":"Umeå","Question":"Vilken stad bor jag inte i?"}}] 

이 데이터이고; 그것은

(
    { 
    Category = Music; 
    Description = "Detta \U00e4r mitt quiz!"; 
    Difficulty = 1; 
    Language = Swedish; 
    Title = "Mitt Quiz"; 
}, 
    { 
    QuestionNr1 =   { 
     Question = "Vilken stad bor jag i?"; 
     RightAnswer = Uppsala; 
     WrongAnswer1 = Stockholm; 
     WrongAnswer2 = "Ume\U00e5"; 
     WrongAnswer3 = Visby; 
    }; 
    QuestionNr2 =   { 
     Question = "Vilken stad bor jag inte i?"; 
     RightAnswer = Uppsala; 
     WrongAnswer1 = Stockholm; 
     WrongAnswer2 = "Ume\U00e5"; 
     WrongAnswer3 = Visby; 
    }; 
} 

)

에 나는 ASIHTTPRequest의 POST 방식을 사용하고 있지만, 서버 측에서이받는 방법을 알고 내 데이터베이스에 PHP로 구문 분석하지 않습니다.

누군가가 올바른 방향으로 나를 가리킬 수 있고 나는 매우 행복 할거야!

// 감사합니다.

답변

0

당신이 POST 명명 된 변수에 JSON 문자열을 보내고있어하지 않는 한, 내용이 요청 페이로드에서 사용할 수, 읽기 stdin.

// Read contents from stdin 
$json_string = file_get_contents('php://input'); 

명명 된 POST-변수로 JSON 문자열을 보내는 경우, 그것은 내용이 $_POST['varname']에 있습니다.

PHP에서 JSON 문자열을 구문 분석하려면 json_decode 함수를 사용합니다. 구문 분석 성공은 json_last_error 기능을 사용하여 확인할 수 있습니다.

// Parse a JSON-string into PHP native equivalents 
$json_parsed = json_decode($json_string); 

if (json_last_error() === JSON_ERROR_NONE) { 
    var_dump($json_parsed); 
} else { 
    // Error parsing JSON 
} 
관련 문제