解析 json 对象时出现问题

Issue in parsing json object

本文关键字:问题 json 对象 解析      更新时间:2023-09-26

我使用了一个AJAX帖子从服务器端获取数据,我想在我的网页上显示它。

这就是我得到的:

{text: active    user
          active  user213123
          idle      user234234234
          loggedout  userafdadf
},

我希望它在text:之后显示全文。这是我所做的:(message是整个json)

AjaxPost: function (dataAttr, view) {
    var that = this;
    $.ajax({
        type: "POST",
        url: this.url + " /user",
        datatype: "application/json",
        contentType: " text/plain",
        data: dataAttr,
        success: function (data) {},
        error: function (error) {},
        statusCode: {
            400: function (error) {
                that.processResponse(error, view);
            },
            200: function (data) {
                that.processResponse(data, view);
            }
        }
    });
},
processResponse: function (messageObj, view) {
    if (_.isUndefined(messageObj) || _.isUndefined(view)) {
        return "error";
    }
    switch (messageObj.status) {
    case 400:
        var objResponse = $.parseJSON(messageObj.responseText);
        this.processMessage(false, objResponse, view);
        break;
    default:
        this.processMessage(true, messageObj, view);
        break;
    }
},
processMessage: function (isSuccess, message, view) {
    if (_.isUndefined(isSuccess) || _.isUndefined(message) || _.isUndefined(view)) return "error";
    else {
        var outputString = "";
        var messageResponse = [];
        messageResponse = message.split(":");
        if (isSuccess) {
            output = messageResponse.split(":");
        }
        view.showMessage(String);
    }

但我收到此错误:

未捕获的类型错误: Object #<Object> has no method 'split'

您没有提供足够的代码,但似乎您的message已经被解析了,因此您有一个Object而不是string

也就是说,您在问题中显示的 JSON 数据是无效的 JSON。不确定这是否是您得到的实际响应,或者您是否对其进行了更改。

当您确实需要解析 JSON 时,请使用 JSON.parse() 。无需手动操作。


正如我上面所说,您已经在解析 JSON。

var objResponse = $.parseJSON(messageObj.responseText);

消息是未定义的,到目前为止,我们在这里看到。你的意思是

outputString.split(":");