简体   繁体   中英

get data from dynamic key value in json

The requirement is following:
I have to get the location field from page.

var input= global.input = document.getElementById("Location");

Get the neighborhood area from the json file based on input and show on the page.

I have a json object and have to filter the data from the json object based on the key value (location)

var inputLocation=input.value;

In my javascript I am getting the error if I use dynamic the key.

I am able to get the json array if I do this data.Aspen but i have to get the data from a text field and it can be different so if I call data.inputLocation... its coming undefined

when i use data.(inputLocation.value) getting the following error :

XML filter is applied to non-XML value ({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"
 }
 ]
}

You can access the property using array-like syntax:

data[inputLocation]

If inputLocation is set to "Aspen" , then it is the same as these two lines:

data["Aspen"]
data.Aspen

get value from dynamic json object Using real time currency converter rest api responce

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);
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM