getJson使用jQuery加载特定数据不起作用

时间:2012-12-19 11:47:19

标签: javascript jquery json

我有这个简短的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;
  });

我不知道怎么做到这一点。加载整个数据是没有问题的...但只有一个部分似乎很棘手。

5 个答案:

答案 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 datenarray只有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的对象。