2015-06-13 32 views
1

我的PHP脚本json_encodes这样的:提取信息从一个JSON:P5.js

[{"x":"20","y":"24","name":"NewNov"},{"x":"20","y":"70","name":"Tito"}] 

但我不知道怎样才能提取我p5.js节目这一信息?假设我需要用'x','y','name'在适当的地方用正确的名字画一个圆圈。

我用loadJSON脚本,现在我有一个变量 -

data = loadJSON() 

但是我怎么弄,说,“X”从JSON的组成部分?

var radius; 

function preload() { 
    var url = 'http://localhost/planetTrequest.php'; 
    radius = loadJSON(url); 
} 

function setup() { 
    createCanvas(300, 300); 
    background(153); 
    noLoop(); 
} 

function draw() { 
    background(200); 
    textSize(15); 
    text(radius.x, 10, 30); 
    fill(0, 102, 153); 
} 
+0

以及数据/半径将是一个数组,以便访问它是这样的,即:'数据[0] .X, data [0] .y,data [1] .x,data [1] .name',使用循环(for,while等)循环访问数组 –

回答

0

你的数据是在一个包含两个对象(jsons)的数组中。

var firstObj = data[0]; // get the first element from array 
var secondObj = data[1]; // get the second element 

firstObj.x从第一个json返回x。

+0

感谢您的努力,我尝试了您的变体,但它似乎我做错了什么。 –

+0

你能给我一个样本吗? –

0

只是一个简单的例子

假设你有一个输入返回JSON这样的:

var data = [{"x":"20","y":"24","name":"NewNov"},{"x":"20","y":"70","name":"Tito"}]; 

如果你想xyname从每个数组中的元素中提取,你可以这样做:

for (var element of data){ 
    // Your element is in format : 
    // {"x":"20","y":"24","name":"NewNov"} 

    // To get X 
    var x = element.x; // or element["x"] 
    // To get Y 
    var y = element.y; // or element["y"] 
    // To get name 
    var name = element.name; // or element["name"] 

    // Do whatsoever with your element 
    // ... 
} 

** JSON是一个对象**

如上面的代码所示,您可以通过其key快速访问JSON数据中的任何属性。您基本上有两种方式,使用.属性或[]数组索引表示法访问。

+0

谢谢,现在它更清晰了! –

1

由于以上所有评论,这就是在结束工作:

var data; 

function preload() { 
var url = 'http://localhost/planetTrequest.php'; 
data = loadJSON(url); 
} 

function setup() { 
createCanvas(300, 300); 
background(153); 
noLoop(); 
} 

function draw() { 
background(200); 
textSize(15); 
text(data[0].name, 10, 30); 
fill(0, 102, 153); 
}