2015-10-05 161 views
1

我已經在這個格式JSON:無法訪問JS財產

[ 
    { 
     "_id": { 
      "$oid": "560c079e1691682b4ff327ad" 
     }, 
     "year": "2015", 
     "month": "9", 
     "day": "30", 
     "time": "17:02:17", 
     "problemDesc": "test", 
     "resolution": "test", 
     "IM": "test" 
    } 
] 

我試圖訪問使用年份:console.log(json[0].year),但接收undefined。如何從這個json字符串訪問年份值?

小提琴:

http://jsfiddle.net/b8dggkof/

+0

你有一個字符串,它是不是在有效的JSON字符串要麼 - 這是一個工程http://jsfiddle.net/mplungjan/pkzuf8b7/ – mplungjan

+0

有沒有額外的字符?試圖訪問您的json對象時出現錯誤 – nykc

回答

5

在的jsfiddle內json的值是一個字符串,而不是一個JavaScript對象,你必須之前解析字符串嘗試訪問該值:

var json = JSON.parse('{"":[{"_id":{"$oid":"560c079e1691682b4ff327ad"},"year":"2015","month":"9","day":"30","time":"17:02:17","problemDesc":"test","resolution":"test","IM":"test"}]}'); 
 

 
console.log(json[''][0].year);

解析st後環,需要用鑰匙一個空字符串來訪問對象:

json[''] 

關聯到這個鍵的值是一個數組,你需要的第一要素,所以:

json[''][0] 

現在你可以這一年:

json[''][0].year 
0

你需要把在一個關鍵的JSON,然後通過訪問關鍵的內部對象,你解析後它,因爲它是用引號括起來'

字符串
var json = '{"key":[{"_id":{"$oid":"560c079e1691682b4ff327ad"},"year":"2015","month":"9","day":"30","time":"17:02:17","problemDesc":"test","resolution":"test","IM":"test"}]}' 

console.log(JSON.parse(json)['key'][0].year); 
0

您需要使用JSON.parsejson string解析你json object然後使用key name在你的情況下這是''(empty string)

var jsonStr = '{"":[{"_id":{"$oid":"560c079e1691682b4ff327ad"},"year":"2015","month":"9","day":"30","time":"17:02:17","problemDesc":"test","resolution":"test","IM":"test"}]}'; 
 
var parseJson = JSON.parse(jsonStr); 
 
alert(parseJson[''][0].year)