Проблема синтаксического анализа ответа JSON с сервера - PullRequest
0 голосов
/ 10 ноября 2009

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

Это суть

$(document).ready(function() {
  $.post("myscript", { Action: "JQueryReq",  },
  function(data){
   alert(data);
  });
});

Если я сделаю вышеописанное, я получу все, что хочу, и это будет выглядеть так (в диалоговом окне JS)

[{"val1":null,"val2":null,"val3":null,"Size":"Inches","valu4":null}]

Но если я изменюсь

alert(data);

до

alert(data.Size);

Я просто получаю "undefined"

Я тоже пытался

var myjsonreturn = eval(data);
alert(myjsonreturn.Size);

Я тоже пробовал

var myjsonreturn = eval('('+data+')');
alert(myjsonreturn.Size);

И каждый раз, когда я получаю неопределенность.

Что я делаю не так?

ТИА

Ответы [ 3 ]

1 голос
/ 10 ноября 2009

Что такое data? Это строка? Если это так, вы хотите использовать:

eval('('+data+')')[0].Size;
0 голосов
/ 14 ноября 2009

В ответ JSON возвращается массив с одной ячейкой. Поскольку длина массива равна 1, индекс будет начинаться с цифры 0, поэтому вы можете получить доступ к содержимому следующим образом:

alert(data[0].Size);

Или, если вы хотите просмотреть значения в jQuery .each ():

$.each(data[0], function(index, value){
    alert(index + ':' + value);
});
0 голосов
/ 10 ноября 2009

пробовал это?

alert(data[0].Size)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...