【问题标题】:How would I convert a JSON object to a js 2d array我如何将 JSON 对象转换为 js 二维数组
【发布时间】:2014-11-18 21:49:37
【问题描述】:

我有一个使用 java hashmap 创建的 JSON 对象,看起来像这样。

{"1":895,"2":827,"3":1429,"4":14,"5":1,"6":2,"10":2}

我的问题可以是任何一种方式,有什么方法可以将此 JSON 对象转换为关联 js 数组,例如

{ 
  d:[
    { 
    'Month' : 1,
    'Count' : 895
    }
    { 
    'Month' : 2,
    'Count' : 827
    }
    { 
    'Month' : 3,
    'Count' : 1429
    }
    { 
    'Month' : 4,
    'Count' : 14
    }
    { 
    'Month' : 5,
    'Count' : 1
    }
    { 
    'Month' : 6,
    'Count' : 2
    }
    { 
    'Month' : 10,
    'Count' : 2
    }
  ]
}

或以其他方式将其转换为 java 脚本二维数组,例如

newArray = [[1, 895][2,827][3,1429][4,14][5,1][6,2][10,2]];

我进行了研究和研究,并且不断遇到很多很棒的事情,但没有一个特别适合这种情况。任何帮助都会很棒!

【问题讨论】:

    标签: javascript arrays json web-applications


    【解决方案1】:

    这样的事情会起作用:

     newArray = [];
     for(key in myArray)
        newArray.push({"Month": key, "Count": myArray[key]});
    

    【讨论】:

    • 老实说,我希望我能接受这两个答案,因为它们都是正确的,你的答案很简短。但是,我确实接受了另一个答案,仅仅是因为信息的链接,这是我遇到并尝试的第一个答案,尽管答案很好,并保持了出色的工作。非常感谢您的帮助。
    • 没问题!另一个答案信息量更大,绝对值得认可!另外,我真的应该用var 声明newArraykey 以避免范围问题。
    【解决方案2】:

    例如你可以这样做:

    var obj = {"1":895,"2":827,"3":1429,"4":14,"5":1,"6":2,"10":2}
    
    var result = {d: Object.keys(obj).map(function(key) {
        return {Month: Number(key), Count: obj[key]}
    })};
    
    alert(JSON.stringify(result, null, '    '));

    或者你可以使用更传统的循环方式for in循环:

    var obj = {"1":895,"2":827,"3":1429,"4":14,"5":1,"6":2,"10":2}
    var result = {d: []};
    
    for (var key in obj) {
        result.d.push({Month: Number(key), Count: obj[key]});
    }
    
    alert(JSON.stringify(result, null, '    '));

    更多关于方法:

    【讨论】:

      猜你喜欢
      • 2010-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多