2D-массив JSON десериализуется в строку, а не в массив - PullRequest
0 голосов
/ 11 января 2010

Как я могу десериализовать приведенную ниже строку JSON в объект двумерного массива с помощью JavaScript? Если я использую JSON.parse или eval, он преобразуется в строку. Я использую библиотеку Дугласа Крокфорда JSON .

[["Apples", "21529", "22457"], ["Apricots", "12547", "12559"]]

Ответы [ 2 ]

0 голосов
/ 11 января 2010

Как вы читаете возвращенное значение? Массив преобразует себя в строку по капле шляпы, если он думает, что вы хотите строку. alert ([1,2,3]) возвращает строку, например.

0 голосов
/ 11 января 2010

Это строка фактическая , которую вы десериализуете? Что касается @nemisj, который работает для меня, и что более важно, он должен работать, поскольку это правильное представление.

Я подозреваю, что у вас может быть где-то свисающая незакрытая скобка или какая-то другая простая, но трудно заметная проблема, подобная этой, которая приводит к неудаче вашей десериализации.

В любом случае, это должно быть относительно просто сделать с Firebug (или с любой консолью Javascript, использующей eval). Просто продолжайте сокращать ваш тестовый ввод, пока вы не получите минимальный случай, который все еще терпит неудачу, и вы можете увидеть, в чем проблема; или он внезапно начинает работать, когда вы удаляете определенный слой шелухи, и тогда вы знаете, что проблема лежит там.

Вы, конечно, правильно используете Javscript, поэтому здесь нет концептуальных проблем; это только один из тех "д'о!" вопросы, которые вам нужно определить самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...