将json数据转换为javascript数组-多维意义
我有一个json数组将json数据转换为javascript数组-多维意义,javascript,json,multidimensional-array,Javascript,Json,Multidimensional Array,我有一个json数组 { "People": { "Person": [ {"FirstName": "John", "LastName": "Smith"} {"FirstName": "Joe", "LastName": "Bloggs"} {"FirstName": "Wendy", "LastName": "Deng"} ] } } 我想把它转换成一个javascript数组(类似这
{
"People": {
"Person": [
{"FirstName": "John", "LastName": "Smith"}
{"FirstName": "Joe", "LastName": "Bloggs"}
{"FirstName": "Wendy", "LastName": "Deng"}
]
}
}
我想把它转换成一个javascript
数组(类似这样的)
我如何做到这一点?希望我的问题有意义,我意识到javascript数组初始化可能不是正确的方式
谢谢。jsiddle演示:
你想做的事没有多大意义。将现有的有效JSON对象转换为指定的数组格式是毫无意义的,并且会使访问元素变得困难 听起来你真正想做的是:
var data = JSON.parse(jsonString); // Your JSON, parsed into a JS object.
var persons = []
data.people.person.foEach( function(el) {
person.push(el.FirstName + " " + el.LastName);
}
现在persons
看起来像这样:
["John Smith", "Joe Bloggs", "Wendy Deng"]
你确定你知道JSON和JavaScript对象是如何工作的吗
var myJSON = '{ "foo": { "bar": { "baz" : [1,2,3] } } }' // JSON, String type.
var myObj = JSON.parse(myJSON); // Now a JS Object type.
var innerArray = myObj.foo.bar.baz;
现在变量innerArray
的值是[1,2,3]
,一种数组
类型
console.log(innerArray[0]); // Log the first element.
> 1 // First element is 1
你为什么要这么做?为什么不将JSON用作JavaScript对象呢?原因有二:1。我很好奇,是否有任何好的类似数组的数据结构可以用来在json中执行数据操作,比如二进制搜索、二进制排序等,而不是javascript对象。2.首先,
JSON
是一种数据交换格式,用字符串表示JSON
格式可以直接映射到JavaScript类型,包括Object
和Array
。您的问题不涉及为什么要这样做,也许这会帮助您理解JSON和JavaScript对象的用法。谢谢。我会试试看,在我的实验中试一下。干杯@AW-GWTF899,好吧!json就是这样一种数据结构,你可以随心所欲地使用:)好吧,实际上我上面提供的示例是一个粗略的草图,我只是当场编出来的。我想要的实际示例是更多(和复杂)的json数据,我想提取json中我更感兴趣的某些元素,然后放入另一个数组。@AW-GWTF899-您是否打算像示例中那样将键作为字符串存储在嵌套数组中?因为它们对于数组中的每个对象都是相同的,这对我来说似乎有点无用。{“responseData”:“translatedText”:“\u6211”},“responseDetails”:“responseStatus”:200,“matches”:[{“id”:“175389268”,“segment”:“I”,“translation”:“\u6211”,“quality”:“74”,“reference”:“,“usage count”:2,“subject”:“Social_Science”,“created by”:“UN”,“上次更新者”:null,“创建日期”:“0000-00-00 00 00:00:00”,“上次更新日期”:“2010-11-13 15:05:19”,“匹配者”:1},{“id”:“430922621”,“段”:“I.”,“翻译”:“I.”,“质量”:“74”,“参考”:“使用计数”:26,“主题”:“全部”,“创建者”:“上次更新者”:null,“创建日期”:“2012-08-17 13:09:06”,“上次更新日期”:“2012-08-17 13:09:06”,“匹配”“:1}}这是我的json数据示例。基本上,我希望从该数据中选择存储在另一个数组中的“matches”数组元素作为键,我希望忽略json数据中的其余元素。如果有意义的话,只需匹配键部分。@AW-GWTF899-它甚至不是有效的json。
var myJSON = '{ "foo": { "bar": { "baz" : [1,2,3] } } }' // JSON, String type.
var myObj = JSON.parse(myJSON); // Now a JS Object type.
var innerArray = myObj.foo.bar.baz;
console.log(innerArray[0]); // Log the first element.
> 1 // First element is 1