var myvar = '
myname({ "country":{ "cities":[ {"id":"3", "population":"3700"},{"id":"5", "population":"3730"}] } });';
因此myvar
是一个字符串。
如何从citiesArr
获取city
个myvar
个对象?
答案 0 :(得分:1)
首先删除myname(
,最后删除);
,然后使用String#replace
,使其成为有效的JSON。之后使用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 :(得分:1)
这不是一个json对象,它包含一个函数,JSON只是一个javascript对象。
要得到这个,你可能需要使用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.
答案 2 :(得分:1)
将你的json改为
var myvar = {" country":{" cities":[{" id":" 3","人口":" 3700"},{" id":" 5","人口":" 3730&#34 ;}]}};
你可以把城市作为myvar.country [" cities"]
答案 3 :(得分:1)
JSON是有效的JavaScript,但并非所有有效的JavaScript都是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);

如果您没有从第三方(如文件或Web服务器)获取字符串,那么您可能需要考虑以正常方式构建对象,而不是尝试使用JSON字符串:
var myvar = {"country":{"cities":[{"id":"3", "population":"3700"},{"id":"5", "population":"3730"}]}};