JSON.parse()返回错误的整数值

时间:2017-10-04 12:45:26

标签: javascript json parsing

[编辑]我稍后对数据进行了修改,并在扩展时反映在对象中,我会尽可能接受我的回答。[/编辑]

我有一个需要解析的简单JSON字符串:

{"Points": [{"x": 0,"y": 33},{"x": 2200,"y": 28},{"x": 4400,"y": 23},{"x": 6600,"y": 20},{"x": 8800,"y": 19},{"x": 11000,"y": 18},{"x": 13200,"y": 17},{"x": 15400,"y": 15},{"x": 17600,"y": 13},{"x": 19800,"y": 12}]}

该字符串由C ++代码生成,用于绘图。当我将它粘贴到json格式化程序时,它解析得很好,给出了正确的值。我面临的问题是非常奇怪的Y值,例如数组“Points”中的第一个对象的y值为20 - 并且字符串中没有20个。

参见附图,它解释了一切。图片上的代码如下:

RequestJSONParse: function(Data)
{
    var Request = Data.split("|");
    var RequestType = Request[0];
    var RequestParams = Request[1];
    var RequestData = undefined;

    if (typeof Request[2] != "undefined" && Request[2] != "")
    {                       
        console.log("---");
        console.log(Request[2]);
        console.log("---");

        RequestData = JSON.parse(Request[2]);

        console.log("---");
        console.log(RequestData);
        console.log("---");
    }

我的问题是 - 是一些特殊的字符还是一种特殊的方式JSON.parse专门解析x,y值?或者这是编码问题还是我甚至无法想到的?我已经在这个项目上工作了2年,并且从未遇到过这样的事情,我们的大多数UI都是通过解析JSON数据来完成的。

Image explaining the problem

2 个答案:

答案 0 :(得分:2)

点击这里你喜欢这个

var json = "{\"Points\": [{\"x\": 0,\"y\": 33},{\"x\": 2200,\"y\": 28},{\"x\": 4400,\"y\": 23},{\"x\": 6600,\"y\": 20},{\"x\": 8800,\"y\": 19},{\"x\": 11000,\"y\": 18},{\"x\": 13200,\"y\": 17},{\"x\": 15400,\"y\": 15},{\"x\": 17600,\"y\": 13},{\"x\": 19800,\"y\": 12}]}";
var Request = json.split("|");
var data = JSON.parse(Request[0]);
console.log(data);

如果以这种方式获取字符串,你可以使用上面的代码....

答案 1 :(得分:0)

@JamesThorpe当时,我正在修改对象,我的更改会在对象扩展时反映出来。蓝色i符号对我来说是缺失的链接。