2015-06-13 31 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); 
}