【问题标题】:How to get array from json response in angularjs如何从angularjs中的json响应中获取数组
【发布时间】:2015-05-18 06:52:42
【问题描述】:

我正在尝试在 JSON 响应中获取数组数据。以下是我的 JSON 响应,我需要从 data 数组中获取 datestallNo

{
    "operation": "AnodeSet",
    "stageMap": {
        "stop": 5, 
        "adders": 4
        // ...
    },
    "anodeProb": [
        { 
            "name": "hello", 
            "index" : "hii" 
        }
    ],
    "data" : [
        { 
            "operation" : "AnodeSet", 
            "stallNo: 7", 
            "date" : "21/12/2015" 
        }
    ]
}

【问题讨论】:

    标签: jquery html json angularjs getjson


    【解决方案1】:

    如果data 数组中始终只返回 1 个元素,您可以通过索引检索它:

    var date = json.data[0].date;
    var stallNo = json.data[0].stallNo;
    

    如果数组中可能有多个元素,则需要循环遍历它们:

    for (var i = 0; i < json.data.length; i++) {
        var date = json.data[i].date;
        var stallNo = json.data[i].stallNo;
    
        // use the above values as required...
    }
    

    【讨论】:

      【解决方案2】:

      如果您正在寻找 angularjs 解决方案,那么您可以使用angular.forEach

      angular.forEach(json.data, function(item, key) {
        console.log(item.stallNo);
        console.log(item.date);
      });
      

      如果您的响应中有多个对象,请使用上述对象。虽然也适用于单个对象。

      【讨论】:

        【解决方案3】:

        我想这很简单

        假设在一个对象中响应

        var object={
            "operation": "AnodeSet",
            "stageMap": {
                "stop": 5, 
                "adders": 4
                // ...
            },
            "anodeProb": [
                { "name": "hello", "index" : "hii" }
            ],
            "data" : [
                { "operation" : "AnodeSet", "stallNo: 7", "date" : "21/12/2015" }
            ]
        }
        

        那么你需要跟踪你的需求:-

        object-->
        
               -->data(array)
        
                           -->index[0,1,2.....n]
        
                                              -->Keys you want.
        
        var date = object.date[0].date;
        var stallNo = object.date[0].stallNo;
        

        【讨论】:

          【解决方案4】:

          您可以使用 underscore.js 中的方法,如下所示,Link for reference

           _.pluck(yourObject.data, 'stallNo');
          
           _.pluck(yourObject.data, 'date');
          

          输出将是 [7,10,12, ...], [21/12/2015, ...](直到数据对象的长度)

          【讨论】:

            【解决方案5】:

            我假设你的 JSON 不是解析字符串。

            var JSONstr='{\
                "operation": "AnodeSet",\
                "stageMap": {\
                    "stop": 5, \
                    "adders": 4\
                },\
                "anodeProb": [\
                    { \
                        "name": "hello", \
                        "index" : "hii" \
                    }\
                ],\
                "data" : [\
                    { \
                        "operation" : "AnodeSet", \
                        "stallNo": 7, \
                        "date" : "21/12/2015" \
                    }\
                ]\
            }';
            var obj = JSON.parse(JSONstr);
            console.log(obj.data[0].date, obj.data[0].stallNo);
            

            你可以使用我的沙箱来检查它是如何工作的:http://jsbin.com/xugahatiwo/1/edit?js,console

            问候

            【讨论】:

              【解决方案6】:
              angular.forEach(json.data, function(value) {
                    console.log(value.date);
                    console.log(value.stallNo);
              });
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2015-11-26
                • 2020-10-28
                • 2016-03-23
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多