非常に単純なJSON配列があります("points.bean.pointsBase"オブジェクトに注目してください):
var mydata =
{"list":
[
{"points.bean.pointsBase":
[
{"time": 2000, "caption":"caption text", duration: 5000},
{"time": 6000, "caption":"caption text", duration: 3000}
]
}
]
};
// Usually we make smth like this to get the value:
var smth = mydata.list[0].points.bean.pointsBase[0].time;
alert(smth); // should display 2000
しかし、残念ながら、何も表示されません。
私が"points.bean.pointsBase"を変更すると、名前にドットのないsmthになります-すべてが機能します!
ただし、この名前をドットなしで他の名前に変更することはできませんが、値を取得する必要がありますか?!
取得するオプションはありますか?
あなたが欲しいのは:
var smth = mydata.list[0]["points.bean.pointsBase"][0].time;
JavaScriptでは、を使用してアクセスできるフィールド。演算子の場合、[]を使用してフィールド名の文字列バージョンでアクセスできます。
javaScriptでは、を使用してオブジェクトプロパティにアクセスできます。演算子または[]を使用した連想配列のインデックス付き。すなわち。 object.property
はobject["property"]
と同等です
これはトリックを行う必要があります
var smth = mydata.list[0]["points.bean.pointsBase"][0].time;
["points.bean.pointsBase"]
Jsonオブジェクトのキー/名前にドットが含まれている場合......!好む
var myJson = {"my.name":"vikas","my.age":27}
のようにアクセスできるより
myJson["my.name"]
myJson["my.age"]
更新されたソリューションを使用するには、lodashユーティリティを使用してみてください https://lodash.com/docs#get