javascript:解析多级json数组

时间:2011-06-19 15:35:30

标签: javascript arrays json parsing

我有一个asp.net Web服务,它返回一个多级数组。

使用json2.js lib解析json字符串:

var donnee = JSON.parse(msg.d);

第一级解析是正常的,但第二级数组(数据)仍然是一个对象数组

  

? donnee [0]

{...}
color: "#0000CD"
data: [[object Object],[object Object]]
label: "formol"
type: "traitement"
  

? donnee [0]。数据

[[object Object],[object Object]]
[0]: {...}
[1]: {...}
  

? donnee [0]。数据[0]

{...}
_l: ""
_x: 7
_y: 25

而我需要一组数据,例如

  

? donnee [0]

{...}
label: "traitement formol 2"
type: "traitement"
color: "#0000CD"
data: [7,25,,7,40,formol]
  

? donnee [0]。数据

[7,25,,7,40,formol]
[0]: [7,25,]
[1]: [7,40,formol]
  

? donnee [0] .data [0]

[7,25,]
[0]: 7
[1]: 25
[2]: ""

一次解码/解析json字符串的所有级别的最佳方法是什么?

最好的问候

1 个答案:

答案 0 :(得分:0)

到目前为止,我还没有找到解码纯数组中json字符串的简单解决方案。现在我解析字符串并直接用数组替换对象。

var donnee = JSON.parse(msg.d);

                for (var i in donnee) {

                    if (donnee.hasOwnProperty(i)) {

                        datas[i] = donnee[i];

                        for (var j in donnee[i]) {

                            if (donnee[i].hasOwnProperty(j)) {

                                var lev2 = donnee[i][j];

                                if (typeof lev2 == "object") {
                                    for (var k in donnee[i][j]) {
                                        var lev3 = donnee[i][j][k];
                                        datas[i].data[k] = new Array(lev3.x, lev3.y, lev3.l);
                                    }
                                }
                            }
                        }
                    }
                }