передача JSON из сервлета в додзе - PullRequest
1 голос
/ 02 апреля 2010

В настоящее время я пытаюсь передать сгенерированную строку JSON в dojo для разбора, и у меня возникли некоторые проблемы. Сервлет просто записывает это в виде строки так:

response.getWriter().append("{ \"data\": {");
response.getWriter().append("\"type\": \"facing\",");
response.getWriter().append("\"score\": " + "\"" + score + "\",");
response.getWriter().append("\"count\":" + "\"" + count + "\"" );
response.getWriter().append("}}");

который печатается как:

{"data":{"type":"facing","score":"10","count":"24"}}

И разбор на конце додзё выглядит так:

dojo.xhrPost({
    url: url,
    handleAs: "json",
    load: function(data) {
        alert(data);
        /* Parse Not working */
        alert(data.data[0].type);  
    },
    error: function(error) {
        alert("No dice")
    }
});

Основная проблема - data.data [0] .type ничего не возвращает, но когда я распечатываю это как текст, кажется, что json правильно отформатирован Любая помощь с этим будет оценена.

Ответы [ 2 ]

0 голосов
/ 02 апреля 2010

Я настоятельно рекомендую использовать Google Gson для преобразования карт и / или коллекций полноценного javabeans в JSON и наоборот.Вы можете найти здесь несколько примеров.Изучение JSON также очень поможет.

0 голосов
/ 02 апреля 2010

Self-Решено: Используйте оператор [] только для разыменования значений из массивов, но при извлечении значений из объекта используйте точечную запись. Таким образом, чтобы получить тип, просто нужно сделать: data.data.type

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