将JSON解析为MultiDimensional Array JS

时间:2011-11-11 14:20:29

标签: javascript arrays json multidimensional-array

我有一个JSON文件,我想从中创建一个多维数组。此信息存储在JSON文件中。

这是JSON数据。

{
  "table": {
    "columnNames": ["column1", "column2", "column3", "column4"],
    "columnTypes": ["String", "String", "String", "String"],
    "rows": [
      ["data00", "data01", "data02", "data03"],
      ["data10", "data11", "data12", "data13"],
      ["data20", "data21", "data22", "data23"],
      ["data30", "data31", "data32", "data33"]
     ]
   }
}

我需要从"行"中的对象创建一个数组数组。部分。

任何帮助将不胜感激!

感谢!!!

3 个答案:

答案 0 :(得分:1)

解析JSON后,“table.rows”属性将已经是一个多维数组(2个维度,具体而言)。您所要做的就是访问它:

var array2D = parsed.table.rows;

至于解析,你应该使用类似Crockford's parser的东西:

var parsed = JSON.parse(rawStringOfJSON);

答案 1 :(得分:0)

首先需要将字符串转换为JS对象。

使用http://www.json.org/js.html

中的json2.js

请注意,如果您考虑支持旧浏览器,则需要添加json2.js。较新的浏览器内置了对JSON

的支持

将字符串反序列化为对象

var myObject = JSON.parse(myJSONtext);

现在你可以访问

myObject.table.rows[1][2]; // yields data12

答案 2 :(得分:0)

rows部分已经包含一个数组数组,所以只需使用:

var result = JSON.parse('{
  "table": {
  "columnNames": ["column1", "column2", "column3", "column4"],
  "columnTypes": ["String", "String", "String", "String"],
  "rows": [
    ["data00", "data01", "data02", "data03"],
    ["data10", "data11", "data12", "data13"],
    ["data20", "data21", "data22", "data23"],
    ["data30", "data31", "data32", "data33"]
   ]
  }
}');

var rows = result.table.rows;