需要将JSON键值对转换为标准数组
我正在使用jQuery的parseJSON()函数将json字符串插入变量中。问题是,它正在将我的数据变成一个对象,而不是一个二维数组。例如,
myData = $.parse(JSON(data));myData.name// = "Bob"
问题是,“名称”不应该是 (假设这是正确的术语)。相反,它应该是:
myData[0] // = "name"myData[1] // = "Bob"
我将如何转换呢?还是有一个不同于使用for循环遍历数组索引的方法(但仍然可以像在2d数组中一样,以字符串形式访问键和值)。
编辑:这是一些正在使用的json(请注意,它的使用时间更长)。这就是“数据”的含义
{"feat_3":"4356","feat_4":"45","feat_5":"564","feat_6":"7566"}
回答:
对数据进行反序列化后(例如,具有myData
对象),可以使用遍历其键for..in
,然后构建一个组合键和值的数组:
var myData, dataArray, key;myData = $.parse(JSON(data));
dataArray = [];
for (key in myData) {
dataArray.push(key); // Push the key on the array
dataArray.push(myData[key]); // Push the key's value on the array
}
由于myData
是对in中的JSON反序列化的结果data
,我们知道这myData
是一个通用对象(例如,只是一个a {}
而不是a new
Foo或类似的东西),所以我们甚至不需要hasOwnProperty
。如果我们不知道,我们只是想列举myData
的
键和值,我们将增加一个hasOwnProperty
检查:
var myData, dataArray, key;myData = $.parse(JSON(data));
dataArray = [];
for (key in myData) {
if (myData.hasOwnProperty(key)) {
dataArray.push(key); // Push the key on the array
dataArray.push(myData[key]); // Push the key's value on the array
}
}
在您的情况下,没有理由这样做,除非有人一直在嘲笑Object.prototype
(在这种情况下,将它们带到树林的后面,给他们严重的藏身处,然后让他们写下“我不会为之反复Object.prototype
数百次黑板),但每次使用时for..in
,最好停下来思考以下问题:A)该对象保证是香草的,B)如果不是,则只需要它自己的属性,还是想要它继承的属性?
以上是 需要将JSON键值对转换为标准数组 的全部内容, 来源链接: utcz.com/qa/416835.html