2016-10-12 4 views
0

JSON.parse를 사용하여 아래 JSON을 javascript 객체로 변환하고 있습니다. Json.Parse가 자동으로 값을 변경합니다.

{"codeDetails":[{"codeID":3,"codeName":[5,8,-1,1,2,3,9,4,6,7,10]},{"codeID":2,"codeName":[0]},{"codeID":4,"CodeName":[1,2]}],"userName":"YYY","userID":"XXX"} 

I가 파싱 할

가 codeID 대한 제 1 값

codeDetails:Array[3] 
0:Object 
codeID:1 -- this is supposed to be 3. 
codeName: 
Array[11] 
0:5 
1:8 
2:-1 
3:1 
4:2 
5:3 
6:9 
7:4 
8:6 
9:7 
10:10 
length:11 

을 아래로 (3)에서 변화하면 I 파싱 사용하고있는 코드이다.

var uText = response.responseText; -- the response from my Ajax call. 
var jsonConvertion = JSON.parse(uText); 
detailtext = JSON.parse(jsonConvertion); 

I 시도 JSON이 반환 값하지만 항상 1로 변화하고 첫 번째 값이이 Json.Parse에 대한 대안을 변경?

+0

당신은'uText' codeID = 3에 확실합니까? 왜냐하면 나는 재현 할 수 없기 때문에 왜 실패할지 알지 못한다. – rbntd

답변

2

JSON.parse() (최신 Chrome 및 Firefox에서 테스트 됨)과 관련하여 문제가 없으며 다른 대안을 찾을 필요가 없습니다.

var json = "{\"codeDetails\":[{\"codeID\":3,\"codeName\":[5,8,-1,1,2,3,9,4,6,7,10]},{\"codeID\":2,\"codeName\":[0]},{\"codeID\":4,\"CodeName\":[1,2]}],\"userName\":\"YYY\",\"userID\":\"XXX\"}"; 
 
var object = JSON.parse(json); 
 

 
console.log(object.codeDetails[0].codeID); // writes out 3

+0

예, 그렇지 않아야한다. –

+1

내가 게시 한 스 니펫에 나와 있듯이 문제는 JSON.parse()로 표시되지 않습니다. –

+0

예, JSON.parse()에 문제가없는 것처럼 보입니다. * _detailtext_ * 변수를 * _JSON.parse (jsonConvertion) _ *로 바꿨고 올바른 값에 액세스 할 수있었습니다. 변수가 작동하지 않는 이유는 여전히 혼란 스럽습니다. –

2

은 1로 변환 왜 나는 볼 수 없습니다 그러나 이것은 확실히 오류입니다 :

var jsonConvertion = JSON.parse(uText); 
detailtext = JSON.parse(jsonConvertion); 

seconde JSON.parse() 호출 당신 때문에 실패합니다 개체를 구문 분석하려고합니다.

+0

var jsonConvertion = JSON.parse (uText); –

+0

var jsonConvertion = JSON.parse (uText); –

+0

var _jsonConvertion = JSON.parse (uText) _ 내 호출이 반환 한 JSON 값과 동일한 문자열을 제공했습니다. 그래서 다시 변환 해 보았습니다. –

관련 문제