0

更新:@MESSIAH 告诉我缩短这个。这是裸骨版本。

我无法解析来自 ajax 调用的响应。我一直在兜圈子。谷歌基本上是在告诉我就是问题所在。好吧,不管我是在ajax调用中取出json还是调用parse。它会给我错误。

如果不使用 JSON.parse() 直接解析,我得到: 第一个是:Uncaught TypeError: Cannot read property 'time' of undefined 好的,这意味着它没有被解析。

目前,我得到这个是因为我正在尝试解析:我现在得到的是:Uncaught SyntaxError: Unexpected token u 好的,这意味着它已解析

这是我的ajax调用:

var reply;
    function sendRouteRequest()
    {
        $.ajax({
            type: 'GET',
            //contentType: "application/json; charset=utf-8",
            url: '/api/getReply',
            data: data, 
            dataType: 'json',
            success: function(result)
            {
                reply = result;
                console.log(reply);
                console.log(reply.time);
            },
            error: function(jqXHR, textStatus, errorThrown)
            {
                alert("Error: " + textStatus + " exception: " + errorThrown);
            }

        });//End of ajax


    }

以下是相关代码:

function parseJson()
{
    //data = JSON.stringify(reply);
    jsonData = JSON.parse(reply);   
    console.log(jsonData.time);    
}

这是控制台中回复的样子。

Object
alert: Object
points: Array[30]
points: Array[30]
time: 4.72
__proto__: Object
status: Object
__proto__: Object

但是 console.log(reply.time) 给了我未定义的。呜?

兜兜转转。

极客

更新:我在这里未显示的函数中调用 parseJson(),$(document).ready(function(){ //blah blah blah}

Servlet 返回 application/json 格式

4

1 回答 1

1

这看起来不太好回应。例如为什么有两点。

points: Array[30]
points: Array[30]

你能打印出你得到的回复吗?它看起来像 javascript 对象而不是 JSON 响应。

如果它是 json 响应,那么它应该看起来像

[{"alerts" : {}, "points": [], "time": 4.72 ......}]

我想你取消注释这条线

dataType: 'json',
于 2013-07-17T19:50:33.953 回答