从JSON访问多维数组

问题描述:

我有一些JSON具有元素属性,其中一个JSON元素具有多个数组的值。我已经研究出如何访问数组,但我不确定如何访问第二个数组。从JSON访问多维数组

我也可以知道如何将新数组推送到JSON值。

这里是我有什么

$(this).attr({ 
"data-settings": $.toJSON({ nPosX: newPX, nPosY: newPY, oPosX: oldPX, oPosY: oldPY, moves: ["val"]["key"] }) 
}); 

var movesObj = $.parseJSON($(this).attr('data-settings')); 

moves正是数组保存。

感谢先进!

+1

'moves:[“val”] [“key”]'不会做你可能认为它做的事。它将尝试访问'[“val”]'数组的'key'属性。该属性不存在,所以它返回'undefined'。因此,这个结果是'moves:undefined'。你究竟想要“移动”结构化?一个数组或数组?有两个元素的数组? –

+0

如果你执行'movesObj.moves [0]',你可以访问“val”。 最好和数组的数组。 – PapaSmurf

+0

使用该设置?我怀疑它:http://jsfiddle.net/g7E7C/在任何方面,你绝对应该阅读[JavaScript中的数组](https://developer.mozilla.org/en/JavaScript/Guide/Predefined_Core_Objects#Array_Object)。如果你想'movesObj.moves [0]'返回'val',那么它似乎需要一个数组有两个元素:'moves:[“val”,“key”]'。 –

嗯,这似乎并不像一个有效JSON给我。你不能像这样定义一个JSON。你要么定义像散招式:

moves: {"val":"key"} 

你访问它想:moves.val移动[ “VAL”]

或者你定义像哈希数组招式:

moves: [{"val":"key"}, ...] 

你访问它,如:移动[0] .VAL移动[0] [ “VAL”]

如果你想有一个嵌套的散列这样,你需要将它定义成:

moves: {"val": {"key":"value"}} 

,并获得它像移动[ “VAL”] [ “钥匙”]moves.val。键

+0

我认为哈希阵列是我正在寻找的,我将如何推动新的哈希阵列进行移动? – PapaSmurf

+0

例如'moves:[{posX:nX,posY:nY,time:0}],[{posX:nX,posY:nY,time:3}] 如何添加第二个数组? – PapaSmurf

+0

不要紧,我会使用我在这里得到的答案:[http://*.com/questions/7492472/how-do-i-add-a-array-to-a-json-object](http:/ /*.com/questions/7492472/how-do-i-add-a-array-to-a-json-object) – PapaSmurf

您能更具体地了解您正在尝试做什么吗?

如果您有嵌套数组,你想从内部阵列的一个访问值,语法是

myArray["key1"]["key2"] 

myArray.foo.bar 
+0

我试图从JSON元素'移动'访问“val”和“key” – PapaSmurf

+0

您可以编辑问题以包含'moves'数组应该做什么的一些想法吗?正如Felix上面所说的,'[“key”] [“val”]'不是你想要做的。 – bdesham