多维数组 JQUERY 和 JSON

Pra*_*ant 5 jquery json multidimensional-array

好的..所以我有一个 json 字符串 (myJson),如下所示:

{"id": "1", "file": "test.jpg"} 
Run Code Online (Sandbox Code Playgroud)

在我的 jquery 函数中,我想将 json 字符串的这些 id 和文件值放入数组中的项目中。

所以我有

var myArray = new Array();
var parsedJson = $.parseJSON(myJson);
myArray['item1']['id'] = parsedJson.id;
myArray['item1']['file'] = parsedJson.file;
Run Code Online (Sandbox Code Playgroud)

但即使在执行这些代码之后,数组的长度myArray仍然为零。有人可以解释一下为什么会发生这种情况吗?

Sal*_*n A 5

也许您将 PHP 关联数组与 JavaScript 数组混淆了。在 JavaScript 中,您使用对象而不是关联数组,并且它们的行为不同。您可以根据需要尝试以下方法之一:

var myArray = {};
var parsedJson = $.parseJSON('{"id": "1", "file": "test.jpg"}');
myArray['item1'] = {};
myArray['item1']['id'] = parsedJson.id;
myArray['item1']['file'] = parsedJson.file;
myArray['item2'] = {};
myArray['item2']['id'] = parsedJson.id + '_2';
myArray['item2']['file'] = parsedJson.file + '_2';
console.log(myArray);
Run Code Online (Sandbox Code Playgroud)

或这个:

var myArray = [];
var parsedJson = $.parseJSON('{"id": "1", "file": "test.jpg"}');
myArray.push({
    id: parsedJson.id,
    file: parsedJson.file
});
myArray.push({
    id: parsedJson.id + '_2',
    file: parsedJson.file + '_2'
});
console.log(myArray);
Run Code Online (Sandbox Code Playgroud)