【问题标题】:JSON array values to separate lists in javascriptJSON数组值在javascript中分隔列表
【发布时间】:2018-03-06 07:51:11
【问题描述】:

我有一个关于转换 JSON 数组的问题。卡了几个小时,想不通。我有一个这样的 JSON 数组:

[
  {
    "id": 1,
    "client": "Marcel",
    "starttime": "15:00:00",
    "endtime": "21:00:00",
    "date": "22-09-2017",
    "weeknumber": 38,
    "zipcode": "3831BC",
    "housenumber": 2,
    "hncharacter": "",
    "place": "Leusden",
    "Salary": 135.13
  },
  {
    "id": 2,
    "client": "Peter",
    "starttime": "13:00:00",
    "endtime": "19:30:00",
    "date": "23-09-2017",
    "weeknumber": 38,
    "zipcode": "3831BC",
    "housenumber": 2,
    "hncharacter": "",
    "place": "Leusden",
    "Salary": 194.87
  },
  {
    "id": 3,
    "client": "Marcel",
    "starttime": "01:45:00",
    "endtime": "09:00:00",
    "date": "24-09-2017",
    "weeknumber": 38,
    "zipcode": "3831BC",
    "housenumber": 2,
    "hncharacter": "",
    "place": "Leusden",
    "Salary": 252.01
  }
]

我尝试为每个对象设置一个单独的列表。 所以对于第一个对象:

list1 = [1, "Marcel", "15:00:00", "21:00:00", "21-09-2017", 38, "3831BC", 2, "", "Leusden", 135.13]

我试过这个:

$.get("restservices/salaries", function(data) {
    for (var i = 0; i < data.length; i++) {
        a.push(data[i].client);
        console.log(a);
    }
})

但是将所有对象的值放在 1 个列表中,输出是

["Marcel", "Peter", "Marcel"]

但我想要的是:

["Marcel"]
["Peter"]
["Marcel"]

【问题讨论】:

  • 你不能,因为JSON array 不存在。
  • a.push([data[i].client]);替换a.push(data[i].client);
  • 试试data.map(function(obj){ return obj.client })
  • 你应该试试Object.values

标签: javascript jquery arrays json arraylist


【解决方案1】:

您应该使用Object.values 方法以获得满足您要求的简单解决方案。

array=array.map(function(item){
   return Object.values(item);
});

let array=[ { id: 1, client: "Marcel", starttime: "15:00:00", endtime: "21:00:00", date: "22-09-2017", weeknumber: 38, zipcode: "3831BC", housenumber: 2, hncharacter: "", place: "Leusden", Salary: 135.13 }, { id: 2, client: "Peter", starttime: "13:00:00", endtime: "19:30:00", date: "23-09-2017", weeknumber: 38, zipcode: "3831BC", housenumber: 2, hncharacter: "", place: "Leusden", Salary: 194.87 }, { id: 3, client: "Marcel", starttime: "01:45:00", endtime: "09:00:00", date: "24-09-2017", weeknumber: 38, zipcode: "3831BC", housenumber: 2, hncharacter: "", place: "Leusden", Salary: 252.01 }];
array=array.map(function(item){
    return Object.values(item);
});
console.log(array);

【讨论】:

    【解决方案2】:

    你也可以试试这个。

        let users = [{"id": 1,"client": "Marcel","starttime": "15:00:00","endtime": "21:00:00","date": "22-09-2017","weeknumber": 38,"zipcode": "3831BC","housenumber": 2,"hncharacter": "","place": "Leusden","Salary": 135.13},
        {"id": 2,"client": "Peter","starttime": "13:00:00","endtime": "19:30:00","date": "23-09-2017","weeknumber": 38,"zipcode": "3831BC","housenumber": 2,"hncharacter": "","place": "Leusden","Salary": 194.87},
        {"id": 3,"client": "Marcel","starttime": "01:45:00","endtime": "09:00:00","date": "24-09-2017","weeknumber": 38,"zipcode": "3831BC","housenumber": 2,"hncharacter": "","place": "Leusden","Salary": 252.01}]
    function demo() {
        let result = [];
        for (let index = 0; index < users.length; index++) {
            let details = [];
            for (let key of Object.keys(users[index])) {
                details.push(users[index][key])
            }
            result.push(details);
        }
        console.log(result);
    }
    demo();
    
    
        let users = [{"id": 1,"client": "Marcel","starttime": "15:00:00","endtime": "21:00:00","date": "22-09-2017","weeknumber": 38,"zipcode": "3831BC","housenumber": 2,"hncharacter": "","place": "Leusden","Salary": 135.13},
            {"id": 2,"client": "Peter","starttime": "13:00:00","endtime": "19:30:00","date": "23-09-2017","weeknumber": 38,"zipcode": "3831BC","housenumber": 2,"hncharacter": "","place": "Leusden","Salary": 194.87},
            {"id": 3,"client": "Marcel","starttime": "01:45:00","endtime": "09:00:00","date": "24-09-2017","weeknumber": 38,"zipcode": "3831BC","housenumber": 2,"hncharacter": "","place": "Leusden","Salary": 252.01}]
        function demo() {
            let result = [];
            for (let index = 0; index < users.length; index++) {
                let details = [];
                for (let key of Object.keys(users[index])) {
                    details.push(users[index][key])
                }
                result.push(details);
            }
            console.log(result);
        }
        demo();

    【讨论】:

      猜你喜欢
      • 2022-06-14
      • 1970-01-01
      • 2020-06-08
      • 1970-01-01
      • 1970-01-01
      • 2023-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多