2015-02-04 2 views
1

자바 스크립트 및 PHP에서 .ajax 호출을 수행하여 배열을 가져 왔습니다. 그러나 표시 할 각 개체의 값을 표시 할 때 그렇게 할 수 없습니다.JSON 배열 및 객체에서 값을 가져올 수 없습니다.

PHP : 그래서

$request = '{"request_id":' .$requestId. ', "reqName":"' .$requestName. '", "reqSubject":' .json_encode($requestSubjects). '}'; 

array_push($requestArray, $request); 

echo json_encode($requestArray); 

나는 그것이 다음과 같습니다 console.log(data) :

["{"request_id":13, "reqName":"Rin", "reqSubject":["English","A Math"]}", "{"request_id":14, "reqName":"Rin", "reqSubject":["English","E Math"]}"] 

I console.log(data[0]), 나는 첫 번째 개체 얻을 수있을 때는 :

{"request_id":13, "reqName":"Rin", "reqSubject":["English","A Math"]} 

을 그러나 내가 객체의 값을 얻고 자 할 때, console.log(data[0].request_id)처럼 undefined가됩니다.

누군가 내 코드에 어떤 문제가 있는지 말해 주시면 감사하겠습니다. 고맙습니다.


+0

그것을 밖으로 시도하십시오. 다음과 같이 구문 분석해야합니다. var result = JSON.parse (data [0]); 그렇다면 result.request_id는 당신이 원하는 것을 줄 것입니다. –

+0

그것은'''data [0] [ "request_id"]''' –

답변

0

응답은 json 형식입니다. 먼저 구문 분석해야합니다. 로 시도 -

var response = jQuery.parseJSON(data[0]); //parse json data 
console.log(response.request_id); 
+0

일 것입니다.이게 옳은 것 같지만 대답은 왜 대답인지 설명해야합니다. 독자에게 코드를 덤프하는 것이 아닙니다. – Quentin

0

를 귀하의 게시물에서 당신이 언급 한

"그러나 나는, 그래서 같은 개체의 값을 가져하고자 할 때
을 console.log (데이터 [0] .request_id)을 정의되지 않은 값을 반환합니다. "

가 JSON.parse() 메소드
을 사용 그렇지 않으면 배열로

데이터를 사용하여 JSON 객체로 해석되는 객체로 결과를 치료하는데 [0] [ "REQUEST_ID"]

+0

'data [0] [ "request_id"]'와'data [0] .request_id'는 JS에서 동일합니다. – Quentin

+0

문제에 대한 적절한 해결책을 제공해주십시오. –

2

["{"request_id":13,
참고 "직접 후 [. 즉. 자바 스크립트 콘솔에서 객체를 포함하는 어레이의 출력 포맷 있지만 문자열을 포함하는 배열 아니다
그리고 그 때문에

있어
$request = '{"request_id":' .$requestId. ', "reqName":"' .$requestName. '", "reqSubject":' .json_encode($requestSubjects). '}'; 

귀하의 PHP 스크립트입니다. 여기에 해시 맵/객체를 작성하는 것이 아니라 문자열을 작성하는 것입니다. 그리고 json_encode에 의해 인코딩됩니다.

당신은 문자열로 오브젝트를 변환 할 JSON.stringify()을 사용할 수 있습니다

$request = array(
    "request_id" => $requestId, 
    "reqName" => $requestName, 
    "reqSubject" => $requestSubjects, 
) 
array_push($requestArray, $request); 

echo json_encode($requestArray); 
1

로보십시오.

그냥 문자열을 의미 귀하의 응답이 JSON입니다

$request = {"request_id":"aaaa", "reqName":"bbbb", "reqSubject":"ccc"}; 
alert(JSON.stringify($request.request_id)); 
관련 문제