使用JSON.parse错误服务器=>客户端node.js解析

时间:2014-01-03 04:57:32

标签: javascript json node.js

我从客户端向服务器发送请求,我得到了这个回复:

{
    "m": "",
    "d": {
        "e": [
            {
                "k": "login",
                "m": "__10_10"
            }
        ]
    },
    "s": false,
    "t": "v"
}

但是当我尝试在客户端的响应中执行JSON.parse时,我得到了:

Uncaught Message._fromJSONString: JSON.parse error:undefined 

代码:

    try{
        console.log(json);
        return Message._fromJSONObject(JSON.parse(json));
    }catch(e){
        throw "Message._fromJSONString: JSON.parse error:" + e.message;
    }

我从http://jsonlint.com/查看我的JSON,这没关系...... 我真的不明白这个问题,这是一个发送此响应的特殊类,一个Validator。从其他请求我没有这个问题......

你对什么是goig有什么想法?感谢。

2 个答案:

答案 0 :(得分:3)

我找到了解决问题的方法。似乎由于某种原因它将它作为普通的JavaScript对象而不是JSON。这段代码现在工作正常。

var json ={
    "m": "",
    "d": {
        "e": [
            {
                "k": "login",
                "m": "__10_10"
            }
        ]
    },
    "s": "false",
    "t": "v"
};

 json =JSON.stringify(json); // this converts it into JSON parsable
console.log(JSON.parse(json));

JSfiddle => http://jsfiddle.net/j39tP/

答案 1 :(得分:0)

今天早上我遇到了类似的错误。我不得不做两件事来解决它:

  1. 无论出于何种原因,错误日志都说我需要将json数据放入数组格式,如JSON.parse([jsondata]);

  2. 除此之外,我的服务器端输出也有错误 - 所以我想仔细检查一下以确保它返回正确的结果?

  3. 不确定这是否适用于您的情况。

    希望这有帮助