要求如下:
我必须从页面获取位置字段。
var input= global.input = document.getElementById("Location");
根据输入并在页面上显示,从json文件中获取邻域区域。
我有一个json对象,必须根据键值(位置)过滤json对象中的数据
var inputLocation=input.value;
在我的javascript中,如果我使用动态密钥,我会收到错误。
如果我执行此操作data.Aspen
,我可以获取json数组但是我必须从文本字段中获取数据,它可以是不同的,所以如果我调用data.inputLocation ...它的未定义< / p>
当我使用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"
}
]
}
答案 0 :(得分:42)
您可以使用类似数组的语法访问该属性:
data[inputLocation]
如果inputLocation
设置为"Aspen"
,则它与这两行相同:
data["Aspen"]
data.Aspen
答案 1 :(得分:2)
使用实时货币转换器rest api响应从动态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);
}