Как преобразовать данные JSON для отображения в HTML? - PullRequest
2 голосов
/ 29 июля 2011

Я пытаюсь отобразить данные JSON, полученные из вызова ajax, но я не могу отобразить какие-либо данные, несмотря на то, что объект JSON получен очень хорошо.

<!DOCTYPE html>

<head>
<title></title>
<script src="jquery.js"></script>
</head>

<script>


$(document).ready(function(){
$.getJSON("http://servername:10000/_vti_bin/webservice/service1.svc/getListTitle",
  {
    username: "a",
    password: "b",
    list: "calendar",
  },
  function(data) {
    alert(1);
    // and the rest
  }
)
});

</script>

<body>
</body
</html>

Я не получаю никаких предупреждений, но с помощью Fiddler я вижу объект JSON.

{"GetListTitleResult":"Calendar"}

Так чего мне здесь не хватает? Любая помощь приветствуется. Заранее спасибо.

РЕДАКТИРОВАТЬ: кажется, что код не доходит до части функции (данных). Но firebug также не показывает никаких синтаксических ошибок. Я все еще получаю ответ JSON через Fiddler. Любая помощь здесь?

Ответы [ 3 ]

4 голосов
/ 29 июля 2011

Измените свой код следующим образом -

$.getJSON("http://servername:10000/_vti_bin/webservice/service1.svc/getListTitle",
{
    username: "a",
    password: "b",
    list: "calendar",
},
function(data)
{
    $.each(data, function(i,item)
    {
        alert(item);
    });
});

На мой взгляд, вы сделали следующие ошибки:

  1. Поскольку data само по себе будетколлекция, вам не нужно получать data.items.Просто передайте data как есть функции each.
  2. Обратному вызову итератора each будет передано key и value для каждого элемента в коллекции.Следовательно, i будет GetListTitleResult, а item будет Calendar.
2 голосов
/ 29 июля 2011

Это не сигнатура метода для getJSON(). Вам не нужно указывать успешный обратный вызов с помощью success:. У вас также есть несколько слишком много скобок, скобок и точек с запятой. Измените его на

$.getJSON("http://servername:10000/_vti_bin/webservice/service1.svc/getListTitle",
  {
    username: "a",
    password: "b",
    list: "calendar",
    format: "json"
  },
  function(data) {
    console.log(data);
    // and the rest
  }
);
0 голосов
/ 29 июля 2011

если ваш метод выглядит так:

public string getListTitle(string username, string password, string list, string format)

, тогда ваши данные ajax хороши.Если это так:

public string getListTitle(MyObject data)

, тогда вам нужно это:

{data: { 
    username: "a",
    password: "b",
    list: "calendar",
    format: "json"
  }
}

РЕДАКТИРОВАТЬ:

function(data) {
    alert(data.GetListTitleResult);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...