2013-07-09 5 views
0

나는 json에서 새로운 편이다. JavaScript에서 주어진 JSON 문자열을 읽는 방법은 무엇인가? 높은 차트에서 관련 배열을 전달하고 싶다.Json String을 읽는 방법

{"getTemperatureResult":"[[\"{name: 'Tokyo',data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]}\",\"{name: 'New York',data: [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5]}\",\"{name: 'Berlin',data: [-0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0]}\",\"{name: 'London',data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]}\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"July\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"]]"} 
+0

'= JSON.parse 데이터 (데이터)의' – Amberlamps

+0

EXACT 중복 ([JSON 자바 스크립트를 구문 분석 방법] http://stackoverflow.com/questions/4935632/how-to-parse-json-in -javascript) – Bergi

답변

1

시도 :

var myObject = JSON.parse(your_JSON_variable); 
1

읽기 :

다시
var obj=JSON.parse(jsonstring); 

obj.getTemperatureResult// contains the city array 

문자열 "내가 자바 스크립트에서 JSON 문자열을 주어진 읽을 수있는 방법"

JSON.stringify(obj); 
2

합니다.

동사는 "읽기"는 조금 모호하지만, 당신이 그것을 평가하기를 원한다면, 당신은 당신이 내에서 사용되지 않은 인용에 JSON을 캡슐화 할 필요가

JSON.parse()

사용할 수 있습니다 JSON은 실제로 구문 분석하지만 코드를 보면 쉽게 할 수있는 방법이 없습니다. 내 조언은 다음과 같습니다.

JSON은 일부 서비스에서 문자열로 반환됩니다. 모든 작은 따옴표에 대해 전역 대체를 수행하여 \"으로 바꾸십시오. 그 이유는 작은 따옴표 나 큰 따옴표로 값을 평가할 방법이 없기 때문입니다.

JSON에 대한 약간의 힌트 - json lint를 통해 JSON을 실행하여 유효한지 확인하십시오. 올바른 형식의 JSON이 없으면 문제가 발생할 수 있습니다.

http://jsonlint.com을 사용하여 유효성을 검사하십시오.

+0

아니요, 객체 리터럴에서'JSON.parse'를 호출 할 수 없습니다 !!! 시도 해봐. – Bergi

+0

당신은 절대 편집! – sircapsalot

+0

실제로는 문자열에 * 아포스트로피가 포함되어 있으므로 구문 오류가 발생했습니다. – Bergi

1

항상 JSON 기능을 즉시 사용할 수있는 브라우저를 기대할 수는 없습니다.

jQuery's $.parseJSON 기능을 사용하거나 우수 json2 solution을 사용하는 것이 좋습니다.

+1

http://caniuse.com/json – cocco

+0

[브라우저 지원에 대한 참조] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON?redirectlocale=en-US&redirectslug= JSON에 대한 JavaScript % 2FReference % 2FGlobal_Objects % 2FJSON # Browser_compatibility). – jterry

+0

니스, @cocco - booookmarking _caniuse_! – jterry

0

JSON이 이상합니다. 객체 내부에서 다른 JSON 문자열을 중첩했습니다. 배열에서 직접 표시하는 대신에.

// Assuming your got the string from a XHR response directly: 
var obj = JSON.parse(response); 
// or you've got the object directly embedded in your script: 
var obj = {"getTemperatureResult":"[[…]]"}; 

// then do: 
var arr = JSON.parse(obj.getTemperatureResult); 
관련 문제