アクセスしようとしているJSONがあります。evalを使用せずにJavascriptでネストされたJSON要素にアクセスする
{
"orders": {
"errorData": {
"errors": {
"error": [
{
"code": "ERROR_01",
"description": "API service is down"
}
]
}
},
"status": "fail"
}
}
私は構造が変化する可能性があり、私は再ファクタリングは、あらゆる場所にアクセスすることにしたくないので、JSONを参照するために、定数を宣言することができるようにしたいです。 「ステータス」キーにアクセスして定数を使用したいとします。データはJSONオブジェクトを参照します。私は(これは活字体である)試みることができる:
public static STATUS : string = "data["orders"]["status"]";
var status_value = STATUS;
問題は、これは単に実際にそれを評価していない、変数「STATUS_VALUE」に文字列のSTATUSを割り当てていることです。私はSTATUSでevalを呼び出すことができましたが、私はそれを避けたいと思います。私はループの答えがあることを知っているが、私はコード全体にこれからアクセスするので、それは少し余裕があるようだ。 (Angular 2アプリなので、バックエンドコールがたくさんあり、JSONを解析しています)
私は定数としてループ関数を書くことができますか?私はJavascriptを初めて使うので、どんなアドバイスも素晴らしいだろう。
なぜ 'data ['order'] ['status']'だけではないのですか?私はあなたのユースケースを理解していません。おそらくあなたは正当な理由がありますが、私はそれを得ません。なぜ文字列にする必要があるのですか?文字列を評価する必要があるのはなぜですか?なぜオブジェクト/値を渡すことができないのですか? – BotNet
私はアクセスを1か所に入れたいと思っていましたが、オブジェクトを渡すことに気づいていませんでした。サービスとコンポーネントが異なるため、複数のタイスクリプトファイルにアクセスする必要があります。答えは、他のクラスにインポートできる静的メソッドを持つクラスをエクスポートするファイルです。 –