値の名前があらかじめわからない場合は、ネストしたJSONの値にアクセスするにはどうすればよいですか。AngularJSで不明な名前のネストされたJSON値にアクセスする
I.e.下のJSONでは、SQLiteテーブルに追加するために菓子オプションの名前にアクセスする必要があります。しかし、菓子の種類や各菓子のオプション名は私には事前に知られていません。
JSONのサンプルは、それぞれ独自の数のオプションを持つ任意の数の菓子オプションがある場合があります。
JSON
[{
"sweet": "sweets",
"sweets":
[{
"idsweets": "1",
"sweetsdesc": "Choocolate Chip"
}, {
"idsweets": "2",
"sweetsdesc": "Mint"
}],
"drink": "drinks",
"drinks":
[{
"iddrinks": "1",
"drinksdesc": "Coke"
}, {
"iddrinks": "2",
"drinksdesc": "Pepsi"
}, {
"iddrinks": "3",
"drinksdesc": "Fanta"
}, {
"iddrinks": "4",
"drinksdesc": "Dr. Pepper"
}, {
"iddrinks": "5",
"drinksdesc": "Powerade"
}],
"crisp": "crisps",
"crisps":
[{
"idcrisps": "1",
"crispsdesc": "Salt"
}, {
"idcrisps": "2",
"crispsdesc": "Vinegar"
}, {
"idcrisps": "3",
"crispsdesc": "Cheese and Onion"
}, {
"idcrisps": "4",
"crispsdesc": "Pepper"
}, {
"idcrisps": "5",
"crispsdesc": "Chilli"
}, {
"idcrisps": "6",
"crispsdesc": "Other"
}]
}]
私はしかし、運と、以下のことを試してくださいデータベースに各菓子オプションを挿入します。
function goInsertValueOptionsList()
{
db.transaction(insertValueOptionsList, errorCB, successCB);
}
function insertValueOptionsList(tx)
{
angular.forEach($scope.optionValuesAPIData, function (value, key) // A variable to hold the confectionary JSON
{
alert("Value Options - Value: " + value); // Prints the JSON [object Object]
for (var description in value)
{
// Get the Column name
alert("Value Options - Description (Column name): " + description);
// Get the Column value
alert("Value Options - Description (Column Value): " + value[description]);
// Inner loop for nested JSON objects
angular.forEach(value, function (v, k)
{
// Get the Column name - try to access e.g. idcrisps
alert("V Options - Description (Column name): " + v); // Not working
// Get the Column value
alert("V Options - Description (Column Value): " + k); // Not working
// Use v and k to insert into database
});
}
});
}
私は最初、なぜ非標準のプロパティ名を不思議に思うでしょう。これはあなたがコントロールするものですか?全体の構造はあまりフレンドリーではありません – charlietfl