我有这个简短的json文件:
{"daten":[
{
"url":"destille",
"lang":"de",
"ausblenden": {
"parts":"farben, sonstiges, material"
}
},
{
"url":"schnaps",
"lang":"de",
"ausblenden": {
"parts":"farben, sonstiges"
}
}
]}
我想加载列出数据的特定部分,例如“schnaps”-part。
$.getJSON('data.json', function(data) {
var output="<ul>";
var uri = "schnaps";
output+="<li>" + data.daten[uri].url + " " + data.daten[uri].ausblenden.parts+"</li>";
output+="</ul>";
document.getElementById("placeholder").innerHTML=output;
});
我不知道怎么做到这一点。加载整个数据是没有问题的...但只有一个部分似乎很棘手。
答案 0 :(得分:2)
如果你想得到url参数值为“schnaps”的对象,你可以这样做:
$.getJSON('data.json', function(data) {
var objects = data.daten.filter(function(v){return v.url=="schnaps"});
if (objects.length==0) return; // no object has url schnaps
var obj = objects[0];
output+="<li>" + obj.url + ... + obj.ausblenden + ...
...
答案 1 :(得分:0)
在JSON
daten
中array
只有schnaps
但{
"daten": {
"destille": {
"lang":"de",
"ausblenden": {
"parts":"farben, sonstiges, material"
}
},
"schnaps": {
"lang":"de",
"ausblenden": {
"parts":"farben, sonstiges"
}
}
}
}
不是它的索引。您应该使用数字对其进行索引。
您可以将数据转换为:
{{1}}
答案 2 :(得分:0)
您的数组不是关联的。你应该像it:data.daten [0] .url一样对它进行迭代,因为将一个字符串传递给索引不会让你到任何地方。 您还可以尝试搜索其他数组搜索机制,通过搜索字符串为您提供所需的功能。
答案 3 :(得分:0)
问题是您无法通过data.daten["schnaps"]
选择所需的元素。该数据位于JSON数组中,因此您应该执行此操作data.daten[1].url
,这将检索您想要的数据。
答案 4 :(得分:0)
在这部分:
data.daten[uri].url
daten
指的是一个数组,uri
(设置为“schnaps”)必须是该数组中的一个键,但它不是 - “schnaps”是{{1对象内部该数组的属性。
您需要迭代或以其他方式过滤数组并获取其中包含url
的对象。