Rad*_*ire 3 arrays jquery json key-value
我正在使用jquery的parseJSON()函数将json字符串插入到变量中.问题是,它将我的数据转换为对象而不是2d数组.例如,
myData = $.parse(JSON(data));
myData.name// = "Bob"
Run Code Online (Sandbox Code Playgroud)
问题是,"名称"不应该是一个关键(假设这是正确的术语).相反,它应该是:
myData[0] // = "name"
myData[1] // = "Bob"
Run Code Online (Sandbox Code Playgroud)
我怎么转换这个?或者有一种不同的方法,而不是使用for循环遍历数组的索引(但仍然能够像字符串一样访问键和值,就像在二维数组中一样).
编辑:这是一些正在使用的json(注意它的时间更长).这就是"数据"的内容
{"feat_3":"4356","feat_4":"45","feat_5":"564","feat_6":"7566"}
Run Code Online (Sandbox Code Playgroud)
一旦你反序列化了数据(例如,你有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
}
Run Code Online (Sandbox Code Playgroud)
由于myData是反序列化JSON的结果data,我们知道这myData是一个通用对象(例如,只是{}一个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
}
}
Run Code Online (Sandbox Code Playgroud)
在你的情况下没有理由这样做,除非有人一直在捣乱Object.prototype(在这种情况下,把它们带到木棚后面,给他们一个严重的隐藏,然后让他们写下"我不会在Object.prototype几百次上捣乱黑板),但无论何时使用for..in,停止并思考A)对象是否保证是香草,并且B)如果没有,你是否只想要它自己的属性,或者你是否也想要它继承的那些?
| 归档时间: |
|
| 查看次数: |
15603 次 |
| 最近记录: |