Извлечь строковое значение из объекта JSON - PullRequest
2 голосов
/ 08 апреля 2009

У меня есть веб-сервис, который возвращает мне объект JSON, содержащий строку «Hello World». Как вытащить эту строку из объекта?

data = [объект Object]

Спасибо

Ник

Ответы [ 3 ]

5 голосов
/ 08 апреля 2009

Вы должны знать, каков ваш объект, какие члены есть у объекта.

Вы можете попробовать что-то вроде

for(var e in data)
    alert(e + ' : ' + data[e]);
2 голосов
/ 08 апреля 2009

Вы можете использовать eval:

var foo = eval('(' + data + ')');

Но это потенциально опасно, особенно если вы не доверяете тому, что отправляется с сервера. Таким образом, наилучший (и наиболее безопасный) способ извлечения данных из объекта JSON - это использование библиотеки Крокфорда JSON :

var foo = JSON.parse(data);

Кстати, если вы используете jQuery для запроса веб-служб ASP.Net, будьте осторожны с проблемой d. (которая используется в качестве объекта контейнера). Таким образом, чтобы извлечь возвращаемый объект, вам нужно сделать:

var foo = JSON.parse(data);
if (foo) {
    //Foo is not null
    foo = f.d;
}

Подробнее об этом здесь: http://encosia.com/2008/03/27/using-jquery-to-consume-aspnet-json-web-services/

0 голосов
/ 08 апреля 2009

Если вы используете функцию post в jQuery, вы можете следовать приведенному примеру здесь .

    $.post("test.php", { func: "getNameAndTime" },
   function(data){
      alert(data.name); // John
      console.log(data.time); //  2pm
   }, "json");

В вашем случае я подозреваю, что вы вызовете data.data.

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