2017-10-04 74 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可以使用上面的代碼,如果以這種方式獲得烏爾串....