2017-10-04 46 views
-2

[编辑]我后来modyfing数据和扩展时,它被物体反射,当我可以,我会接受我的答案。[/编辑]JSON.parse()来为整数返回错误值

我有一个需要分析一个简单的JSON字符串:由绘制图形的目的C++代码生成

{"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}]} 

的字符串。当我把它粘贴到一个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

+3

这是20:'{“x”:6600,“y”:20}' – Pointy

+2

http://jsbin.com/paganawado/1/edit?js,console - 我无法重现该问题。 – Quentin

+0

请注意您的'RequestData'日志旁边的蓝色'i' - 是否在操作数据 - 看起来它在您登录后可能已被修改,并且在扩展后您正在查看已修改的数据。 –

回答

0

@JamesThorpe是在一点上,我是稍后修改对象,并在展开对象时将其反映在对象中。我的蓝色符号是我缺失的链接。

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); 

U可以使用上面的代码,如果以这种方式获得乌尔串....