无法遍历 p5 中的 json 列表
Can't loop over a json list in p5
这里的第一个问题,完全是新手问题。
我正在尝试用 .p5 编写一个脚本来加载一个 .json 文件并打印出给定类别的所有结果。如果我调用一个特定的条目,它会打印出结果,但我不明白为什么在尝试循环时它没有打印出来。
像这样:
var data;
function preload() {
data = loadJSON("assets/data-test.json");
}
function setup() {
noCanvas();
var cdu = data.cdu;
var qtde = data.qtde;
var autor = data.autor;
var titulo = data.titulo;
var sub_titulo = data.sub_titulo;
var isbn = data.isbn;
var publicacao = data.publicacao;
for (var i = 0; i < cdu.length; i++) {
createElement("h1",data[i].cdu);
}
}
我的 .json 文件如下所示:
[
{
"cdu": "53 F363f Ac.1028543",
"qtde": 3,
"autor": "FERNANDES, C. E. de M.",
"titulo": "Fundamentos de física para geociências.",
"sub_titulo": "",
"isbn": "ISBN 9788571931596.",
"publicacao": "Rio de Janeiro: Intercincia, 2007."
},
{
"cdu": "37(81) F137s Ac.1019442",
"qtde": 1,
"autor": "BOHN, Hilario Inacio; SOUZA, Osmar de (Org.).",
"titulo": "Faces do saber:",
"sub_titulo": "desafios à educaáão do futuro.",
"isbn": "ISBN 9788574741109.",
"publicacao": "Florianópolis: Insular, [2002?]."
},
{
"cdu": "001 A474f Ac.262110",
"qtde": 8,
"autor": "ALVES, Rubem.",
"titulo": "Filosofia da cincia:",
"sub_titulo": "Introdução ao jogo e suas regras.",
"isbn": "ISBN 97588585470531.",
"publicacao": "São Paulo: Ars Poetica, 1996."
}
]
有人可以给我一些说明吗?
谢谢
var data = [
{
"cdu": "53 F363f Ac.1028543",
"qtde": 3,
"autor": "FERNANDES, C. E. de M.",
"titulo": "Fundamentos de física para geociências.",
"sub_titulo": "",
"isbn": "ISBN 9788571931596.",
"publicacao": "Rio de Janeiro: Intercincia, 2007."
},
{
"cdu": "37(81) F137s Ac.1019442",
"qtde": 1,
"autor": "BOHN, Hilario Inacio; SOUZA, Osmar de (Org.).",
"titulo": "Faces do saber:",
"sub_titulo": "desafios à educaáão do futuro.",
"isbn": "ISBN 9788574741109.",
"publicacao": "Florianópolis: Insular, [2002?]."
},
{
"cdu": "001 A474f Ac.262110",
"qtde": 8,
"autor": "ALVES, Rubem.",
"titulo": "Filosofia da cincia:",
"sub_titulo": "Introdução ao jogo e suas regras.",
"isbn": "ISBN 97588585470531.",
"publicacao": "São Paulo: Ars Poetica, 1996."
}
]
/***************************************
data in this case is the individual object
and key is the key in relation to the
key value pairs
****************************************/
for(var i =0; i < data.length; i++){
for(key in data[i]){
console.log('KEY', key, ' ELEMENT', data[i][key])
}
}
在上面的代码片段中,您尝试访问键的元素 [i] 而不是对象,因为数据是一个对象数组,您需要遍历每个对象才能访问代码片段中的键。
这里的第一个问题,完全是新手问题。
我正在尝试用 .p5 编写一个脚本来加载一个 .json 文件并打印出给定类别的所有结果。如果我调用一个特定的条目,它会打印出结果,但我不明白为什么在尝试循环时它没有打印出来。
像这样:
var data;
function preload() {
data = loadJSON("assets/data-test.json");
}
function setup() {
noCanvas();
var cdu = data.cdu;
var qtde = data.qtde;
var autor = data.autor;
var titulo = data.titulo;
var sub_titulo = data.sub_titulo;
var isbn = data.isbn;
var publicacao = data.publicacao;
for (var i = 0; i < cdu.length; i++) {
createElement("h1",data[i].cdu);
}
}
我的 .json 文件如下所示:
[
{
"cdu": "53 F363f Ac.1028543",
"qtde": 3,
"autor": "FERNANDES, C. E. de M.",
"titulo": "Fundamentos de física para geociências.",
"sub_titulo": "",
"isbn": "ISBN 9788571931596.",
"publicacao": "Rio de Janeiro: Intercincia, 2007."
},
{
"cdu": "37(81) F137s Ac.1019442",
"qtde": 1,
"autor": "BOHN, Hilario Inacio; SOUZA, Osmar de (Org.).",
"titulo": "Faces do saber:",
"sub_titulo": "desafios à educaáão do futuro.",
"isbn": "ISBN 9788574741109.",
"publicacao": "Florianópolis: Insular, [2002?]."
},
{
"cdu": "001 A474f Ac.262110",
"qtde": 8,
"autor": "ALVES, Rubem.",
"titulo": "Filosofia da cincia:",
"sub_titulo": "Introdução ao jogo e suas regras.",
"isbn": "ISBN 97588585470531.",
"publicacao": "São Paulo: Ars Poetica, 1996."
}
]
有人可以给我一些说明吗?
谢谢
var data = [
{
"cdu": "53 F363f Ac.1028543",
"qtde": 3,
"autor": "FERNANDES, C. E. de M.",
"titulo": "Fundamentos de física para geociências.",
"sub_titulo": "",
"isbn": "ISBN 9788571931596.",
"publicacao": "Rio de Janeiro: Intercincia, 2007."
},
{
"cdu": "37(81) F137s Ac.1019442",
"qtde": 1,
"autor": "BOHN, Hilario Inacio; SOUZA, Osmar de (Org.).",
"titulo": "Faces do saber:",
"sub_titulo": "desafios à educaáão do futuro.",
"isbn": "ISBN 9788574741109.",
"publicacao": "Florianópolis: Insular, [2002?]."
},
{
"cdu": "001 A474f Ac.262110",
"qtde": 8,
"autor": "ALVES, Rubem.",
"titulo": "Filosofia da cincia:",
"sub_titulo": "Introdução ao jogo e suas regras.",
"isbn": "ISBN 97588585470531.",
"publicacao": "São Paulo: Ars Poetica, 1996."
}
]
/***************************************
data in this case is the individual object
and key is the key in relation to the
key value pairs
****************************************/
for(var i =0; i < data.length; i++){
for(key in data[i]){
console.log('KEY', key, ' ELEMENT', data[i][key])
}
}
在上面的代码片段中,您尝试访问键的元素 [i] 而不是对象,因为数据是一个对象数组,您需要遍历每个对象才能访问代码片段中的键。