代码之家  ›  专栏  ›  技术社区  ›  Pawan

如何遍历整个JSON并获取所有empid?

  •  -3
  • Pawan  · 技术社区  · 6 年前

    {
      "name": "Employee Fields",
      "id": "Employee",
      "rows": [
        {
          "data": [
            {
              "emp": "111",
              "label": "Name",
              "disabled": false
            },
            {
              "emp": "112",
              "label": "Name",
              "disabled": false
            }
          ]
        },
        {
          "data": [
            {
              "emp": "113",
              "label": "Name",
              "disabled": false
            },
            {
              "emp": "114",
              "label": "Name",
              "disabled": false
            }
          ]
        },
        {
          "data": [
            {
              "emp": "115",
              "label": "Name",
              "disabled": false
            },
            {
              "emp": "116",
              "label": "Name",
              "disabled": false
            }
          ]
        }
      ]
    }
    

    enter image description here

    https://jsfiddle.net/o2gxgz9r/70859/

    4 回复  |  直到 6 年前
        1
  •  2
  •   Krzysztof Raciniewski Eliseo    6 年前

    $(document).ready(function() {
      
      var fields = 
      {
        "name": "Employee Fields",
        "id": "Employee",
        "rows": [
          {
            "data": [
              {
                "emp": "111",
                "label": "Name",
                "disabled": false
              },
              {
                "emp": "112",
                "label": "Name",
                "disabled": false
              }
            ]
          },
          {
            "data": [
              {
                "emp": "113",
                "label": "Name",
                "disabled": false
              },
              {
                "emp": "114",
                "label": "Name",
                "disabled": false
              }
            ]
          },
          {
            "data": [
              {
                "emp": "115",
                "label": "Name",
                "disabled": false
              },
              {
                "emp": "116",
                "label": "Name",
                "disabled": false
              }
            ]
          }
        ]
      };
    
    
      $.each(fields.rows, function(index, row) {
        $.each(row.data, function(index, emp) {
          console.log("Label: ", emp.label);
          console.log("Disabled: ", emp.disabled);
          console.log("ID: ", emp.emp);
          console.log("----");
        });
      });
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
        2
  •  0
  •   Suresh Prajapati    6 年前

        var foo = {
          "name": "Employee Fields",
          "id": "Employee",
          "rows": [
            {
              "data": [
                {
                  "emp": "111",
                  "label": "Name",
                  "disabled": false
                },
                {
                  "emp": "112",
                  "label": "Name",
                  "disabled": false
                }
              ]
            },
            {
              "data": [
                {
                  "emp": "113",
                  "label": "Name",
                  "disabled": false
                },
                {
                  "emp": "114",
                  "label": "Name",
                  "disabled": false
                }
              ]
            },
            {
              "data": [
                {
                  "emp": "115",
                  "label": "Name",
                  "disabled": false
                },
                {
                  "emp": "116",
                  "label": "Name",
                  "disabled": false
                }
              ]
            }
          ]
        }
        
        foo.rows.forEach(row => {
        	row.data.forEach(e => {
        		console.log(e.emp)
        	})
        })
        3
  •  0
  •   Narendra Jadhav    6 年前

    你可以用 map() concat()

    var data ={"name":"Employee Fields","id":"Employee","rows":[{"data":[{"emp":"111","label":"Name","disabled":false},{"emp":"112","label":"Name","disabled":false}]},{"data":[{"emp":"113","label":"Name","disabled":false},{"emp":"114","label":"Name","disabled":false}]},{"data":[{"emp":"115","label":"Name","disabled":false},{"emp":"116","label":"Name","disabled":false}]}]}
    let result =[].concat.apply([],data.rows.map(({data})=>data.map(({emp})=>emp)))
    
    console.log(result)

    也可以使用 reduce() , concat() .

    var data ={"name":"Employee Fields","id":"Employee","rows":[{"data":[{"emp":"111","label":"Name","disabled":false},{"emp":"112","label":"Name","disabled":false}]},{"data":[{"emp":"113","label":"Name","disabled":false},{"emp":"114","label":"Name","disabled":false}]},{"data":[{"emp":"115","label":"Name","disabled":false},{"emp":"116","label":"Name","disabled":false}]}]}
    let result = data.rows.reduce((r,{data})=>r.concat(data.map(({emp})=>emp)),[]);
    
    console.log(result)
        4
  •  0
  •   Tarang Hirani    6 年前

    map reduce 方法。

    你要把这个储存起来 JSON

    const response = <JSON VARIABLE ABOVE>

    const rows = { response }; //destructure the rows from the response variable

    要检索ID数组,可以执行以下操作:

    const ids = rows.map((row) => {
        return row.data.map((d) => {
        return d.emp;
      })
    }).reduce((a, b) => a.concat(b), []);