2017-01-22 62 views
-2

我有以下的JSON对象在我的脚本:浏览我的JSON对象

var antennas = 'antennas [ :{"id":"66175", "nom_com":"PARIS-8E-ARRONDISSEMENT", "nom_dept":"PARIS", "nom_reg":"ILE-DE-FRANCE", "generation":"2G", "emr_lb_systeme":"GSM 900", "coordonnes":["48.8663888889","2.32305555556"], "coord":"48° 51′ 59"N 2° 19′ 23"E"},{"id":"66176", "nom_com":"PARIS-8E-ARRONDISSEMENT", "nom_dept":"PARIS", "nom_reg":"ILE-DE-FRANCE", "generation":"4G", "emr_lb_systeme":"LTE 800", "coordonnes":["48.8663888889","2.32305555556"], "coord":"48° 51′ 59"N 2° 19′ 23"E"}]'; 

而且我想遍历每个元素。

我这样做代码:

var antennas = 'antennas [ :{"id":"66175", "nom_com":"PARIS-8E-ARRONDISSEMENT", "nom_dept":"PARIS", "nom_reg":"ILE-DE-FRANCE", "generation":"2G", "emr_lb_systeme":"GSM 900", "coordonnes":["48.8663888889","2.32305555556"], "coord":"48° 51′ 59"N 2° 19′ 23"E"},{"id":"66176", "nom_com":"PARIS-8E-ARRONDISSEMENT", "nom_dept":"PARIS", "nom_reg":"ILE-DE-FRANCE", "generation":"4G", "emr_lb_systeme":"LTE 800", "coordonnes":["48.8663888889","2.32305555556"], "coord":"48° 51′ 59"N 2° 19′ 23"E"}]'; 
var antennasMap = JSON.parse(antennas); 

for (var key in antennasMap) { 
    console.log(key); 
} 

但控制台givbe我这个错误:

SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

+1

这不是一个有效的结构。它从何而来?需要修复源码 – charlietfl

+0

该字符串不包含JSON。你的问题是什么? – Quentin

+0

如果没有语义被破坏,在这里使用** dummy **数据通常是一个好主意。网络安全不是玩笑。 –

回答

1

你的JSON字符串已经多问题,所以不能被解析为一个JavaScript对象:

括号内的
  • 格式错了
  • 的S特林包含在COORDS串

我以前http://jsonlint.com/发现和解决存在的问题转义引号

这里是一个有效的JSON字符串接近你有什么:

var antennas = '{"antennas":[{"id":"66175","nom_com":"PARIS-8E-ARRONDISSEMENT","nom_dept":"PARIS","nom_reg":"ILE-DE-FRANCE","generation":"2G","emr_lb_systeme":"GSM 900","coordonnes":["48.8663888889","2.32305555556"],"coord":"48° 51′ 59\\"N 2° 19′ 23\\"E"},{"id":"66176","nom_com":"PARIS-8E-ARRONDISSEMENT","nom_dept":"PARIS","nom_reg":"ILE-DE-FRANCE","generation":"4G","emr_lb_systeme":"LTE 800","coordonnes":["48.8663888889","2.32305555556"],"coord":"48° 51′ 59\\" N 2° 19′ 23\\"E"}]}' 

这样就解决了这个javascript对象:

{ 
    "antennas": [{ 
     "id": "66175", 
     "nom_com": "PARIS-8E-ARRONDISSEMENT", 
     "nom_dept": "PARIS", 
     "nom_reg": "ILE-DE-FRANCE", 
     "generation": "2G", 
     "emr_lb_systeme": "GSM 900", 
     "coordonnes": ["48.8663888889", "2.32305555556"], 
     "coord": "48° 51′ 59\"N 2° 19′ 23\"E" 
    }, { 
     "id": "66176", 
     "nom_com": "PARIS-8E-ARRONDISSEMENT", 
     "nom_dept": "PARIS", 
     "nom_reg": "ILE-DE-FRANCE", 
     "generation": "4G", 
     "emr_lb_systeme": "LTE 800", 
     "coordonnes": ["48.8663888889", "2.32305555556"], 
     "coord": "48° 51′ 59\"N 2° 19′ 23\"E" 
    }] 
} 

下面是一个示例代码记录输出到c onsole。

var antennas = '{"antennas":[{"id":"66175","nom_com":"PARIS-8E-ARRONDISSEMENT","nom_dept":"PARIS","nom_reg":"ILE-DE-FRANCE","generation":"2G","emr_lb_systeme":"GSM 900","coordonnes":["48.8663888889","2.32305555556"],"coord":"48° 51′ 59\\"N 2° 19′ 23\\"E"},{"id":"66176","nom_com":"PARIS-8E-ARRONDISSEMENT","nom_dept":"PARIS","nom_reg":"ILE-DE-FRANCE","generation":"4G","emr_lb_systeme":"LTE 800","coordonnes":["48.8663888889","2.32305555556"],"coord":"48° 51′ 59\\"N 2° 19′ 23\\"E"}]}'; 
 

 
var antennasMap = JSON.parse(antennas); 
 

 
antennasMap.antennas.forEach (function (record) { 
 
    console.log(record); 
 
})

+0

我的问题是关于“我的字符串里面? –

+0

是的,也是字符串的开始是不合法的json:'天线[:{”id“...' – Giladd