2

在这里,我使用 java.stringify 获取数据。但是要使用我在图形框架中获得的数据,那不应该被引用。我需要解析所有包含引号的数据。(例如 [{data:[{x:87.6,y:85}..) 我应该在这里做什么?请帮我!!

这是我需要解析的数据..

[{"data":[{"x":87.6,"y":85},{"x":116.08,"y":61},{"x":113.11,"y":49},{"x":181.37,"y":65},{"x":138.14,"y":74},{"x":66.03,"y":89}]}]
4

3 回答 3

1

使用正则表达式删除引号。

例如,如果它是一个 json 字符串,您可以这样做:

var json = '{ "name": "John Smith" }';    //Let's say you got this
json = json.replace(/\"([^(\")"]+)\":/g,"$1:");    //This will remove all the quotes 
json;     //'{ name:"John Smith" }'

如果您输入:

var a ='[{"data":[{"x":87.6,"y":85},{"x":116.08,"y":61},{"x":113.11,"y":49},{"x":181.37,"y":65},{"x":138.14,"y":74},{"x":66.03,"y":89}]}]';
a = a.replace(/\"([^(\")"]+)\":/g,"$1:");    
a;    //"[{data:[{x:87.6,y:85},{x:116.08,y:61},{x:113.11,y:49},{x:181.37,y:65},{x:138.14,y:74},{x:66.03,y:89}]}]"
于 2013-05-09T06:58:23.597 回答
1

JSON 就像一个元素数组。每个元素又可以是一个元素数组,索引是一个字符而不是数字。所以在你的例子中,有很多数组。1.去掉第一个包装数组,你到达'data'数组2。

    var js=[{"data":[{"x":87.6,"y":85},{"x":116.08,"y":61},{"x":113.11,"y":49},{"x":181.37,"y":65},{"x":138.14,"y":74},{"x":66.03,"y":89}]}];

    //This will have all the data value in array.
    var data=js[0]['data'];
//The data array has lots of sub arrays whose elements are arrays (with index x,y).
    for(var i=0;i<data.length;i++){
    var subData=data[i];
    var x=subData['x'];
    var y=subData['y'];
    //Do something with x and y
    }

通过这种方式,您可以访问 JSON 中的任何元素进行解析。希望这会有所帮助!JS Fiddle 检查链接:http: //jsfiddle.net/saiprasad2k6/f88fH/7/

于 2013-05-09T07:09:26.207 回答
0

在 Chrome 控制台中我试过这个

var obj = jQuery.parseJSON('{"data":[{"x":87.6,"y":85},{"x":116.08,"y":61},{"x":113.11,"y":49},{"x":181.37,"y":65},{"x":138.14,"y":74},{"x":66.03,"y":89}]}');

obj

我得到的输出为

Object {data: Array[6]}

我希望你能从中得到一个想法。

于 2013-05-09T07:06:26.207 回答