2017-03-08 193 views
0

我在发布我的问题之前在stackoverflow上搜索,但我没有找到任何解决方案。我有一个这样的对象:JAVASCRIPT数组转换对象

"{"COURRIERS": 
    {"05. Juridique": 
     [{"res_id":100,"type_label":"Plainte","subject":"test23","doctypes_first_level_label":"COURRIERS","doctypes_second_level_label":"05. Juridique","folder_level":2}] 
    } 
}" 

,我需要访问它像一个阵列,为了得到像RES_ID等信息..

我怎样才能做到这一点?

在此先感谢

+2

请添加所需的结果。 –

+3

这是**字符串**。要将其转换为对象,请使用'JSON.parse(string)',然后使用'Object.keys(obj)'获取可用于获取数组的键列表。 – Tushar

+0

@Tushar当我显示它与console.log我可以看到它是一个对象,而不是一个字符串 – Nathan30

回答

2

假设你不会有一个以上的对象/数组中的每一层,这应该得到你所需要的。

let obj = { 
 
    "COURRIERS": { 
 
    "05. Juridique": [{ 
 
     "res_id": 100, 
 
     "type_label": "Plainte", 
 
     "subject": "test23", 
 
     "doctypes_first_level_label": "COURRIERS", 
 
     "doctypes_second_level_label": "05. Juridique", 
 
     "folder_level": 2 
 
    }] 
 
    } 
 
} 
 

 
let folder = Object.keys(obj)[0] 
 
let type = Object.keys(obj[folder])[0] 
 
let result = obj[folder][type][0] 
 

 
console.log(result)

+0

完美,非常感谢:) – Nathan30

1

类似的东西?

(我插入数据的变量中,并打印与主要指数通缉的结果)

let obj = { 
 
    "COURRIERS":{ 
 
     "05. Juridique":[ 
 
     { 
 
      "res_id":100, 
 
      "type_label":"Plainte", 
 
      "subject":"test23", 
 
      "doctypes_first_level_label":"COURRIERS", 
 
      "doctypes_second_level_label":"05. Juridique", 
 
      "folder_level":2 
 
     } 
 
     ] 
 
    } 
 
}; 
 

 
console.log(obj["COURRIERS"]["05. Juridique"][0]["res_id"]);

编辑

您想与变量接取它。 为了避免错误,我强烈建议你检查变量值键在阵列/对象存在这样的:

let folder = 'COURRIERS'; 

if(folder.indexOf(data) >= 0) { // folder.indexOf(data) = 0 
// ... finish the job here :) 
} 
// indexOf return -1 if the value is not found 
+0

是的,但我需要访问它没有字符串,但变量。像数据[文件夹] [类型] [我] ['res_id']:/ – Nathan30

+0

这是相同的,正确替换字符串与变量数据[文件夹] [类型] [我] [“res_id”] –

+0

那么, ,数据[文件夹] ...无法工作,因为文件夹,类型等..不是我的对象的索引:/ – Nathan30

1

您可以访问多种方式的数据。以下内容将有助于阐明您访问某些数据的一些方法。

myObj.type    = "Dot syntax"; 
myObj.type    = "Dot syntax"; 
myObj["date created"] = "String with space"; 
myObj[str]    = "String value"; 
myObj[rand]    = "Random Number"; 
myObj[obj]    = "Object"; 
myObj[""]    = "Even an empty string"; 

对于你的问题,你可以使用下面的

var x = { 
"COURRIERS":{ 
    "05. Juridique":[ 
    { 
     "res_id":100, 
     "type_label":"Plainte", 
     "subject":"test23", 
     "doctypes_first_level_label":"COURRIERS", 
     "doctypes_second_level_label":"05. Juridique", 
     "folder_level":2 
    } 
    ] 
}}; 
console.log(x['COURRIERS']['05. Juridique'][0].res_id) 
+0

感谢您的帮助。但是,当我回答Mathieu Lescaudron时,我必须像这样访问它:data [folder] [type] [i] [“res_id”] – Nathan30