我的问题是,如何使用javascript读取特定形式的json数据,例如,如果我有这一种,在我看来是很难下注的,所以你能帮我解决这个问题。
{
"jQRReponse": [
[
{
"sujet": "RHONE ALPES",
"verbe": "est_le_nom_de_la_region",
"complement": {
"sujet": "82",
"verbe": "est_la_region_du_dept",
"complement": {
"sujet": "01",
"verbe": "est_le_numero_du_dept",
"complement": {
"sujet": "Ain",
"verbe": "contient_les_resultats_de_depAnn",
"complement": {
"sujet": "Ain2014",
"verbe": "Pop_results_Ens_Total",
"complement": "626794"
}
}
}
}
}
],
[
{
"sujet": "RHONE-ALPES",
"verbe": "est_le_nom_de_la_region",
"complement": {
"sujet": "82",
"verbe": "est_la_region_du_dept",
"complement": {
"sujet": "01",
"verbe": "est_le_numero_du_dept",
"complement": {
"sujet": "Ain",
"verbe": "contient_les_resultats_de_depAnn",
"complement": {
"sujet": "Ain2014",
"verbe": "Pop_results_Ens_Total",
"complement": "626794"
}
}
}
}
}
]
]
}如果我有这个表格:
data : [{
toto:5,
mama:10
},
{
toto:99,
mama:10
},
{
toto:88,
mama:10
}]我将在我喜欢的索引处读取toto值:data[i].toto。
那我怎么才能做第一个呢?
谢谢
发布于 2016-07-18 07:33:51
您可以对所有数据进行迭代并获得结果。
访问的形式如下
data.jQRReponse[0][0].complement.complement.sujet
// returns "01"
function read(o) {
Object.keys(o).forEach(function (k) {
if (o[k] !== null && typeof o[k] === 'object') {
console.log(k + ' -->');
read(o[k]);
return;
}
console.log(k + ': ' + o[k]);
});
}
var data = { "jQRReponse": [[{ "sujet": "RHONE ALPES", "verbe": "est_le_nom_de_la_region", "complement": { "sujet": "82", "verbe": "est_la_region_du_dept", "complement": { "sujet": "01", "verbe": "est_le_numero_du_dept", "complement": { "sujet": "Ain", "verbe": "contient_les_resultats_de_depAnn", "complement": { "sujet": "Ain2014", "verbe": "Pop_results_Ens_Total", "complement": "626794" } } } } }], [{ "sujet": "RHONE-ALPES", "verbe": "est_le_nom_de_la_region", "complement": { "sujet": "82", "verbe": "est_la_region_du_dept", "complement": { "sujet": "01", "verbe": "est_le_numero_du_dept", "complement": { "sujet": "Ain", "verbe": "contient_les_resultats_de_depAnn", "complement": { "sujet": "Ain2014", "verbe": "Pop_results_Ens_Total", "complement": "626794" } } } } }]] };
read(data, []);
发布于 2016-07-18 07:33:16
如果您知道元素、深度和键,就可以访问这个嵌套json对象的特定部分。
如果元素为0,深度为2,键为verbe,则可以这样做:
nestedObj[0].complement.complement.complement.verbe如果您的要求是遍历整个对象并找到所需的东西,则可以对每个元素使用递归函数。
function traverse_it(obj){
for(var prop in obj){
console.log(obj[prop]); //Or whatever you want to do with this level
if(typeof obj[prop]=='object'){
traverse_it(obj[prop[i]]); //Function goes to the next level here
}
}
}
traverse_it(nestedObj);Here很有洞察力
https://stackoverflow.com/questions/38430562
复制相似问题