2016-06-23 3 views
-2
var myvar = ' 
    myname({ "country":{  "cities":[ {"id":"3", "population":"3700"},{"id":"5", "population":"3730"}] } });'; 

따라서 myvar은 문자열입니다.올바른 JSON 문자열에서 배열을 추출하십시오.

배열 city의 배열 myvar에서 개체?

+7

의견이 있으시면 [json] (http://json.org/)을 볼 수 없습니다. –

+1

http://stackoverflow.com/questions/4935632/parse-json-in-javascript 및 https://msdn.microsoft.com/en-us/library/cc836466(v=vs.85).aspx – Jaiprakash

+0

참조 이 게시물에는 JSON이 없습니다. myvar는 JS 코드 인 문자열을 가지고 있습니다. 이 코드에서는 JS 객체 리터럴을 전달하는 함수를 호출합니다. – JAAulde

답변

1

처음에는 myname(을 제거하고 마지막에는 );을 제거하여 올바른 JSON으로 설정하십시오. String#replace을 사용하십시오. 그런 다음 JSON.parse 메서드를 사용하여 문자열을 구문 분석하고 원하는 데이터를 가져옵니다.

var myvar = 'myname({ "country":{  "cities":[ {"id":"3", "population":"3700"},{"id":"5", "population":"3730"}] } });'; 
 

 
console.log(JSON.parse(myvar.replace(/^\s*\w+\(|\);$/g, '')).country.cities);

1

이것이 JSON 오브젝트는, 그 기능을 포함하지 않고, JSON은 자바 스크립트 객체이다.

이것을 얻으려면 eval을 사용해야 할 수도 있지만 추천하지는 않습니다.

var myvar = 'myname({ "country":{  "cities":[ {"id":"3", "population":"3700"},{"id":"5", "population":"3730"}] } });'; 
 

 
function myname(jsonObj) { 
 
    console.log(jsonObj) 
 
} 
 

 
eval(myvar); //will log the whole object.

1

변경 = { "국가"

VAR이 MyVar로 JSON : { "도시": [{ "ID": "3", "인구": "3700 "}, {"id ":"5 ","population ":"3730 "}]}};

하고

1

JSON이 유효 자바 스크립트입니다 myvar.country과 도시 [ "도시"] 얻을 수 있지만,이 모든 유효한 자바 스크립트 valid JSON입니다.

Nina가 질문에 대한 의견에서 지적했듯이, 질문에 붙여 넣은 문자열이 유효한 JavaScript 일 수 있지만 유효한 JSON이 아닙니다.

당신이, 당신은 use this solution to parse your JSON 수있는 문제를 해결 한 후에 :

var myvar = '{"country":{"cities":[{"id":"3", "population":"3700"},{"id":"5", "population":"3730"}]}}'; 
var theData = JSON.parse(myvar); 

방법 myVar에에서 도시 객체의 citiesArr 배열을 얻을 수 있습니까? 객체를 다시 얻을 수 JSON.parse(...)을 사용하면

, 당신은 일반적으로 개체를 사용하는 것처럼 당신이 그것을 사용할 수 있습니다 : 당신이 얻는하지 않는 경우

var myvar = '{"country":{"cities":[{"id":"3", "population":"3700"},{"id":"5", "population":"3730"}]}}'; 
 
var theData = JSON.parse(myvar); 
 
var cities = theData.country.cities; 
 
console.log(cities);

을 (파일 또는 웹 서버와 같은) 제 3 자의 문자열은 JSON 문자열을 전혀 사용하지 않고 일반적인 방법으로 객체를 작성하는 것을 고려할 수 있습니다.

var myvar = {"country":{"cities":[{"id":"3", "population":"3700"},{"id":"5", "population":"3730"}]}}; 
관련 문제