2017-01-22 60 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