如何从多个对象.json文件的数组中获取随机对象并获取随机键/值对?
我有一个p5.js脚本,它加载一个json文件,该文件包含多个对象的数组,每个对象具有11个键/值对。我可以获得随机对象,但我还需要获得随机键/ valeu对作为字符串。
我没有足够的代码技能来找出在随机对象和随机密钥/ valeu对之间随机排序的方法。有什么想法吗?
提前致谢。
示例json:
{
"entries": [
{
"area": "0",
"qtd": "3",
"author": "FERNANDES, C. E. de M.",
"title": "Fundamentos de física para geociências.",
"subTitle": "xxxxx",
"qtdPag": "v.",
"edition": "xxxxx",
"isbn": "ISBN 9788571931596.",
"edPlace": "Rio de Janeiro: Interciência, 2007.",
"cdu": "53 F363f Ac.1028543",
"areaKnow": "Pre-catalogação"
}
]
}
p5.js代码:
var data;
var fontRegular;
function preload() {
fontRegular = loadFont("assets/RobotoMono-Medium.ttf");
data = loadJSON("assets/data-bce-final.json");
}
function setup() {
createCanvas(windowWidth, windowHeight);
setText();
setInterval(setText, 5000);
}
function setText() {
var entries = data.entries;
var randomEntries = entries[Math.floor(Math.random() * entries.length)]; // get random item
background(255);
noStroke();
fill(80, 227, 194);
fill(100);
textSize(30);
textFont(fontRegular);
text(
// random version
randomEntries.author + "\n" +
randomEntries.title + "\n" +
randomEntries.subTitle + "\n" + "\n" +
randomEntries.edPlace + "\n" +
randomEntries.areaKnow + "\n" + "\n" +
randomEntries.cdu, 50, 60, windowWidth - 150);
}
function draw() {
}
答案 0 :(得分:0)
我相信您说要从entries
变量中随机输入。如果是这种情况,您需要做的就是执行以下操作:
var randomEntries = Object.keys(entries)[Math.floor(Math.random() * entries.length)];
Object.keys()
函数将返回一个键数组,您可以像任何其他数组一样引用它们。然后,您可以使用随机生成的密钥来获取所需的值。如果您想获得随机值,请使用Object.values()
。
希望这就是你要找的东西,因为措辞的原因,我不能确定。