要件は次のとおりです。
ページから場所フィールドを取得する必要があります。
_var input= global.input = document.getElementById("Location");
_
入力に基づいてjsonファイルから近傍領域を取得し、ページに表示します。
私はjsonオブジェクトを持っており、キーの値(場所)に基づいてjsonオブジェクトからのデータをフィルタリングする必要があります
_var inputLocation=input.value;
_
私のJavaScriptでは、動的キーを使用するとエラーが発生します。
_data.Aspen
_を実行するとjson配列を取得できますが、テキストフィールドからデータを取得する必要があるため、データが異なる可能性があるため、data.inputLocation ...を呼び出すと、未定義になります
data.(inputLocation.value)
を使用すると、次のエラーが発生します。
XMLフィルターが非XML値({Aspen:[{ID:
_{
"Aspen":[
{
"ID":"Bellaire",
"Name":"Bellaire"
},
{
"ID":"Champions Forest",
"Name":"Champions Forest"
},
{
"ID":"Highland Village",
"Name":"Highland Village"
},
{
"ID":"Museum District",
"Name":"Museum District"
}
]
}
_
配列のような構文を使用してプロパティにアクセスできます。
data[inputLocation]
inputLocation
が"Aspen"
に設定されている場合、これは次の2行と同じです。
data["Aspen"]
data.Aspen
リアルタイムのjsonオブジェクトから値を取得する
public async Task<JsonResult> ConvertCurrency(float Price, string FromCurrency)
{
var testcase = FromCurrency + "_USD";
WebClient web = new WebClient();
const string ConverterApiURL = "http://free.currencyconverterapi.com/api/v5/convert?q={0}_{1}&compact=ultra&apiKey={{EnterKey}}";
string url = String.Format(ConverterApiURL, FromCurrency, "USD");
string response = new WebClient().DownloadString(url);
var data = (JObject)JsonConvert.DeserializeObject(response);
dynamic result = data.SelectToken(testcase + ".val").ToString();
var basePrice = float.Parse(result);
double exchangeRate = Price * basePrice;
var responce = Math.Round(exchangeRate, 2);
return Json(responce, JsonRequestBehavior.AllowGet);
}