2017-03-08 7 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"]);

EDIT

。回避のバグについては のように配列/オブジェクトに存在し、私は強い変数値のキーかどうかをチェックすることをお勧めいたします:あなたは複数の方法でデータにアクセスすることができます

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

はい、文字列ではなく変数にアクセスする必要があります。データ[フォルダ] [タイプ] [タイプ] [i] ['res_id']のように:/ – Nathan30

+0

それは同じです、文字列を変数 'data [folder] [type] [i] [" res_id "]' –

+0

で置き換えます。 、data [folder] ...フォルダ、タイプ等が私のオブジェクトのインデックスではないので動作できません:/ – 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

関連する問題