2016-03-25 33 views
5

如何访问第二个数字“19”,它位于以下JSON的Numbers数组中?我已经尝试过每一种方式,一直未能。访问下列JSON值:

{ 
    "Numbers": [{ 
    "1": 6 
    }, { 
    "2": 19 
    }, { 
    "3": 34 
    }, { 
    "4": 38 
    }, { 
    "5": 70 
    }], 
    "MB": 5, 
    "MP": "05", 
    "DrawDate": "2016-03-22T00:00:00" 
} 
+1

'myVar.Numbers [1] [“2”]' –

+0

在哪种语言? – Jois

+0

Javascript是语言 – ConfusedDeer

回答

3

您将访问它像这样:

console.log(jsonObj.Numbers[1][2]); 

这假定您存储JSON到一个名为jsonObj变量。 你不能使用数字作为对象属性键,所以你不能只做jsonObj.Numbers[1].2

1

您可以

obj.Numbers[1][2] 

其中1是对象的数组索引和2访问其key

4

您可以通过访问:

object.Numbers[1]['2'] 

也就是说因为Numbers对象是一个键值对象的数组,其中是您期望的值。

1

要做到这一点,你应该分析它为JavaScript,像这样:

var myjson = JSON.parse('{"Numbers":[{"1":6},{"2":19},{"3":34},{"4":38},{"5":70}],"MB":5,"MP":"05","DrawDate":"2016-03-22T00:00:00"}'); 

一旦它被解析,你可以做

myjson.Numbers[1][2] 

访问密钥(:19)那么你会做

myjson.Numbers[1] 
1

将整个json分配给var。

var obj = JSON.parse({"Numbers":[{"1":6},{"2":19},{"3":34},{"4":38},{"5":70}],"MB":5,"MP":"05","DrawDate":"2016-03-22T00:00:00"}); 



obj.Numbers[1][2] 

你应该能够访问它

+0

您不需要使用JSON.parse,因为它已经是JSON而不是字符串。 –

1

我觉得这是很容易:

var myVars={"Numbers":[{"1":6},{"2":19},{"3":34},{"4":38},{"5":70}],"MB":5,"MP":"05","DrawDate":"2016-03-22T00:00:00"} 

myVars.Numbers会给你:[{"1":6},{"2":19},{"3":34},{"4":38},{"5":70}] 该元素的数组:第一个元素myVars.Numbers[0]{"1":6},第二myVars.Numbers[1]{"2":19}。 Finaly,myVars.Numbers[1][2]是19,如果你想查看在您的第二个数字19这意味着你必须写:myVars.Numbers[1][2]

+1

我认为这很容易,但是正如Rayon Dabre所提到的,要记住的一件事是JSON格式不支持无效字符,“对象属性名称可以是任何有效的JavaScript字符串或任何可以转换的对象字符串,包括空字符串,但是,任何不是有效的JavaScript标识符的属性名称(例如,具有空格或连字符的属性名称,或以数字开头的名称)只能使用方块当属性名称被动态确定时,这种表示法也非常有用... – ConfusedDeer