将JSON对象的所有键存储在一个变量中

Store all the keys of a JSON object in a variable

本文关键字:一个 变量 存储 对象 JSON      更新时间:2023-09-26

我从服务器得到如下字符串:

{"Point Ref":[15629989,564646414,65494949],
"Effective Date":["2008-03-03","2010-12-14","2004-10-01"],
"Identifier":["EM","EM","SC"],"Status":["FI","SI","XC"]}"

我用将其转换为JSON

var jsonResponse = jQuery.parseJSON(xmlHttp.responseText.trim());

在这里之前一切都很好:我可以循环通过jsonResponse并完成我的工作。然而,我找不到一种简单快捷的方法来立即将所有密钥都放在一个array中。

基本上,除了这个,还有其他东西吗:

var keys = new Array();
var n = 0
for (var i in jsonResponse){
    keys[n] = i
    n ++
}

谢谢。

您可以使用Object.keys:

var keys = Object.keys(jsonResponse);

使用array.map()的替代解决方案

//minified polyfill for old browsers:
if (!Array.prototype.map) { Array.prototype.map = function (e, t) { var n, r, i; if (this == null) { throw new TypeError(" this is null or not defined") } var s = Object(this); var o = s.length >>> 0; if (typeof e !== "function") { throw new TypeError(e + " is not a function") } if (t) { n = t } r = new Array(o); i = 0; while (i < o) { var u, a; if (i in s) { u = s[i]; a = e.call(n, u, i, s); r[i] = a } i++ } return r } }
var keys = jsonResponse.map(function(v, k) { return k; });