javascript: анализ многоуровневого массива json - PullRequest
0 голосов
/ 19 июня 2011

У меня есть веб-сервис asp.net, который возвращает многоуровневый массив.

строка json анализируется с использованием библиотеки json2.js:

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

парсинг 1-го уровнявсе в порядке, но массив 2-го уровня (данные) остается массивом объектов

?Донни [0]

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

?донни [0] .данные

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

?donnee [0] .data [0]

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

, тогда как мне нужен массив данных, например

?Донни [0]

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

?донни [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 голосов
/ 20 июня 2011

Я до сих пор не нашел простого решения для декодирования строки 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);
                                    }
                                }
                            }
                        }
                    }
                }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...