0

我有这个简短的 json 文件:

{"daten":[
    {
        "url":"destille",
        "lang":"de",
        "ausblenden": {
            "parts":"farben, sonstiges, material"
        }
    },
    {
        "url":"schnaps",
        "lang":"de",
        "ausblenden": {
            "parts":"farben, sonstiges"
        }
    }
]}

而且我只想加载列出数据的特定部分,例如“schnaps”部分。

 $.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;
  });

我不知道如何得到这个。加载整个数据没问题……但只有一部分似乎很棘手。

4

5 回答 5

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 + ...
  ...
于 2012-12-19T11:51:05.353 回答
1

在这部分:

data.daten[uri].url

daten指的是一个数组,并且uri(设置为“schnaps”)必须是该数组中的一个键,但它不是 - “schnaps”是该数组url对象的属性。

您需要遍历或以其他方式过滤数组并获取其中包含url === "schnaps".

于 2012-12-19T11:51:32.663 回答
0

问题是你不能通过做来选择你想要的元素data.daten["schnaps"]。该数据位于 JSON 数组中,因此您应该改为执行此操作data.daten[1].url,这将检索您想要的数据。

于 2012-12-19T11:50:58.740 回答
0

In your JSON datenis anarrayschnaps它不是它的索引。您应该使用数字对其进行索引。

您是否可以将数据转换为:

{
    "daten": {
        "destille": {
            "lang":"de",
            "ausblenden": {
                "parts":"farben, sonstiges, material"
            }
        },
        "schnaps": {
            "lang":"de",
            "ausblenden": {
                "parts":"farben, sonstiges"
            }
        }
    }
}
于 2012-12-19T11:50:38.373 回答
0

您的数组不是关联的。你应该像这样迭代它:data.daten[0].url this,因为将字符串传递给索引不会让你到任何地方。您还可以尝试搜索其他数组搜索机制,这些机制可以通过字符串搜索为您提供所需的功能。

于 2012-12-19T11:50:43.263 回答