【问题标题】:How to get json values for a key using javascript or jquery or angularjs?如何使用 javascript 或 jquery 或 angularjs 获取键的 json 值?
【发布时间】:2016-03-24 09:10:56
【问题描述】:

我有以下 json:

var jsonobj = {
    "title" : "Testing",
    "settings" : {
    "mysettings" : false
    },
    "jsonlist": ["TestingList"],
    "testjsonvals": {
        "Test1": {
            "name": "name1",
            "description": "Test1 description"
            },
        "Test2": {
            "name": "name2",
            "description": "Test2 description"      
        },
        "Test3": {
            "name": "name3",
            "description": "Test3 description"            
        }
    }
}

如何使用 javascript 或 jquery 或 angularjs 仅从我给定的 json 在一条警报消息上获取/显示 Test1、Test2、Test3 的描述值(例如:Test1 description, Test2 description, Test3 description 应该显示在我的警报消息上)?请帮助我并提前致谢。

【问题讨论】:

    标签: javascript jquery angularjs json


    【解决方案1】:

    你应该迭代jsonobj["testjsonvals"](或jsonobj.testjsonvals)对象键并连接description值,或者将它们推入数组和join()

    var jsonobj = {
        "title" : "Testing",
        "settings" : {
        "mysettings" : false
        },
        "jsonlist": ["TestingList"],
        "testjsonvals": {
            "Test1": {
                "name": "name1",
                "description": "Test1 description"
                },
            "Test2": {
                "name": "name2",
                "description": "Test2 description"      
            },
            "Test3": {
                "name": "name3",
                "description": "Test3 description"            
            }
        }
    }
    
    
    var msg = [];
    $.each(jsonobj["testjsonvals"], function(key,v){ msg.push(v["description"]) });
    alert(msg.join(", "));
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

    【讨论】:

      【解决方案2】:

      你可以这样做

      var tests=jsonobj['testjsonvals'];
      alert(tests["Test1"]['description'])
      

      【讨论】:

        【解决方案3】:
        var message = jsonobj.testjsonvals.Test1.description + ', ' +
            jsonobj.testjsonvals.Test2.description + ', ' +
            jsonobj.testjsonvals.Test3.description;
        alert(message);
        

        【讨论】:

          【解决方案4】:
          alert( jsonobj ['testjsonvals'['Test1'].description,  + 
                 jsonobj ['testjsonvals'] ['Test2'].description,  + 
                 jsonobj ['testjsonvals']['Test3'].description );
          

          alert( jsonobj.testjsonvals.Test1.description, + 
                 jsonobj.testjsonvals.Test2.description,  + 
                 jsonobj.testjsonvals.Test3.description );
          

          如果这段代码对你有帮助,请告诉我

          【讨论】:

            【解决方案5】:

            这将遍历你所有的 testjsonvals 并将它们添加到我们用空格和警报连接在一起的数组中

            var arr = [];
            for(i in jsonobj.testjsonvals)
            {
                arr.push(jsonobj.testjsonvals[i].description);
            }
            
            alert(arr.join(" "));
            

            【讨论】:

              【解决方案6】:

              如果您遍历jsonobj.testjsonvals,您应该能够构建您的字符串以匹配您需要的内容。像这样的东西应该可以解决问题:

              var jsonobj = {
                  "title" : "Testing",
                  "settings" : {
                  "mysettings" : false
                  },
                  "jsonlist": ["TestingList"],
                  "testjsonvals": {
                      "Test1": {
                          "name": "name1",
                          "description": "Test1 description"
                          },
                      "Test2": {
                          "name": "name2",
                          "description": "Test2 description"      
                      },
                      "Test3": {
                          "name": "name3",
                          "description": "Test3 description"            
                      }
                  }
              };
              
              var tests = jsonobj.testjsonvals;
              var msg = [];
              for (var i in tests) {
                if (tests.hasOwnProperty(i)) {
                  msg.push(tests[i].description);
                }
              }
              alert(msg.join(' '));
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2013-06-05
                • 1970-01-01
                相关资源
                最近更新 更多