带jQuery的嵌套json:创建嵌套项列表

带jQuery的嵌套json:创建嵌套项列表,jquery,json,list,mobile,Jquery,Json,List,Mobile,我有一个JSON: { "fakultaeten": [ { "id": "1", "name": "Carl-Friedrich Gauß", "institut": [ { "Mathematik": [ { "Verbra

我有一个JSON:

{
    "fakultaeten": [
        {
            "id": "1",
            "name": "Carl-Friedrich Gauß",
            "institut": [
                {
                    "Mathematik": [
                        {
                            "Verbrauch": "852 kWH",
                            "Effizienz": "5,5"
                        }
                    ],
                    "Informatik": [
                        {
                            "Verbrauch": "852 kWH",
                            "Effizienz": "5,5"
                        }
                    ],
                    "Wirtschaftswissenschaften": [
                        {
                            "Verbrauch": "852 kWH",
                            "Effizienz": "5,5"
                        }
                    ],
                    "Sozialwissenschaften": [
                        {
                            "Verbrauch": "852 kWH",
                            "Effizienz": "5,5"
                        }
                    ]
                }
            ],
            "verbrauch": "852 kWH"
        }
    ]
}
我想创建“institut”中所有项目的列表,如下所示:

  • 马蒂马蒂克
  • Infomratik
  • Wirtschaftswissenschaften
我正在尝试这个:

$.each(data.fakultaeten, function(key,value)
            {
                var mother = "<li id='first'>"+value.name+"<ul>";
                $.each(value.institut, function(key1, value1)
                {
                // create the list here
                });
             })
$.each(data.fakultaeten,函数(键,值)
{
var mother=“
  • ”+value.name+“
      ”; $.each(value.institut,函数(键1,值1) { //在这里创建列表 }); })
  • 结果仅为:[对象]


    我的解决方案有什么问题?

    您的问题是
    institut
    是一个包含单个对象的数组,因此您可以使用
    institut[0]
    引用该单个对象

    这将有助于:

    $.each(data.fakultaeten, function (key, value) {
        var mother = "<li id='first'>" + value.name + "<ul>";
        $.each(value.institut[0], function (key1, value1) {
            alert(key1);
        });
    });
    
    $.each(data.fakultaeten,函数(键,值){
    var mother=“
  • ”+value.name+“
      ”; $.each(value.institut[0],函数(键1,值1){ 警报(按键1); }); });
  • 试试这个:

    $.each(data.fakultaeten, function (key, value) {
        var mother = "<li id='first'>" + value.name + "<ul>";
        $.each(value.institut[0], function (key1, value1) {
            console.log(key1); // key1 gives you output that you want
        });
    });
    
    $.each(data.fakultaeten,函数(键,值){
    var mother=“
  • ”+value.name+“
      ”; $.each(value.institut[0],函数(键1,值1){ console.log(key1);//key1提供您想要的输出 }); });
  • 你真的有JSON吗?或者你只是有一个javascript对象?我不认为是,如果你从一个异步调用中获取
    数据
    ,它很可能是一个javascript对象。JSON只能是一个字符串,如果你有一个字符串,那么你应该用
    JSON.parse(jsonString)
    解析它,但我没有把它放在这里,因为这不是我问题的一部分。你说“我有这个JSON”。。。如果您已经将它作为一个对象,并且不想显示解析,那么就不需要提及JSON。你只是把情况弄糊涂了。此外,代码的哪一部分不起作用?不管怎样,我只是添加了JSON信息,因为我认为这可能很重要。如果不是-忽略它:)