【问题标题】:Parsing JSON to have a key and a value解析 JSON 以获得一个键和一个值
【发布时间】:2018-01-28 11:42:39
【问题描述】:

我正在将 JSON 字符串转换为 javascript 数组,目前我有这个:

{
    "table1": [
        {
            "EmpNo": "3103899",
            "attendanceStatus": "true"
        }
    ]
}

我现在需要做的,是将它转换为一个数组,将EmpNo 值作为键,attendanceStatus 作为值,使其看起来像这样:

var attendances = {
    111: false,          
    123: true,
    456: false,
    789: true,
    321: true,
    654: false,
    222: true,
    987: false
};

我怎样才能做到这一点?提前谢谢你。

【问题讨论】:

  • 在您的 JSON 字符串中,您只有一对员工出勤,而在您的阵列中,您有很多。其他员工在原始 JSON 字符串中是如何排列的?每个员工是否有 1 个 JSON 字符串(即,您通过组合多个 JSON 字符串来创建数组)?所有员工都列在数组table1 中吗?还是别的什么?
  • @user2340612,我将所有员工都放在一个 JSON 字符串中,所以是的,所有员工都在 table1 内收听。

标签: arrays json dictionary key-value


【解决方案1】:

假设您有以下 JSON 字符串:

{
  "table1": [
    {
      "EmpNo": "3103899",
      "attendanceStatus": true
    },
    {
      "EmpNo": "123",
      "attendanceStatus": false
    }
  ]
}

然后,你可以编写如下代码:

var json = JSON.parse('{"table1":[{"EmpNo":"3103899","attendanceStatus":true},{"EmpNo":"123","attendanceStatus":false}]}')

var array = []

json.table1.forEach(function(entry) {
  item = { [entry.EmpNo] : entry.attendanceStatus };
  array.push(item);
})

console.log(array)

这就是你应该在控制台中得到的:

[ { 3103899: true }, { 123: false } ]

【讨论】:

    猜你喜欢
    • 2023-01-26
    • 1970-01-01
    • 2022-11-26
    • 1970-01-01
    • 2019-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多