Javascript 从 jQuery 或 JS 中的 json 对象中提取数据
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/10926965/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Extracting data from json object in jQuery or JS
提问by Joseph
I want to use the currency data provided by https://raw.github.com/currencybot/open-exchange-rates/master/latest.json
我想使用https://raw.github.com/currencybot/open-exchange-rates/master/latest.json提供的货币数据
As an initial test, I've created a cut-down version of this as an inline object:
作为初始测试,我创建了一个缩减版本作为内联对象:
var obj = [
{
"disclaimer": "This data is collected from various providers and provided free of charge for informational purposes only, with no guarantee whatsoever of accuracy, validity, availability, or fitness for any purpose; use at your own risk. Other than that, have fun! More info: http://openexchangerates.org/terms/",
"license": "Data collected from various providers with public-facing APIs; copyright may apply; not for resale; no warranties given. Full license info: http://openexchangerates.org/license/",
"timestamp": 1339036116,
"base": "USD",
"rates": {
"EUR": 0.795767,
"GBP": 0.645895,
"JPY": 79.324997,
"USD": 1
}
}];
All I want to be able to do is somehow query/grep/filter the json object with, for example, "EUR" as the criteria and have it return a variable called 'rate' with a value of '0.795767' as a result.
我想要做的就是以某种方式查询/grep/过滤json对象,例如,“EUR”作为标准,并让它返回一个名为“rate”的变量,其值为“0.795767”。
I've looked at the JQuery grep and filter functions but I can't figure out how to isolate just the 'rates' section of the object and then to get the rate I want.
我已经查看了 JQuery grep 和过滤器函数,但我无法弄清楚如何仅隔离对象的“速率”部分,然后获得我想要的速率。
回答by thecodeparadox
var obj = [
{
"disclaimer": "This data is collected from various providers and provided free of charge for informational purposes only, with no guarantee whatsoever of accuracy, validity, availability, or fitness for any purpose; use at your own risk. Other than that, have fun! More info: http://openexchangerates.org/terms/",
"license": "Data collected from various providers with public-facing APIs; copyright may apply; not for resale; no warranties given. Full license info: http://openexchangerates.org/license/",
"timestamp": 1339036116,
"base": "USD",
"rates": {
"EUR": 0.795767,
"GBP": 0.645895,
"JPY": 79.324997,
"USD": 1
}
}];
obj[0].rates.EUR; // output: 0.795767
or
或者
obj[0].rates['EUR']; output: //0.795767
If you want to isolate rates in another variable and use that variable then try like following:
如果您想隔离另一个变量中的速率并使用该变量,请尝试如下操作:
var rates = obj[0].rates;
Now,
现在,
rates.EUR;
rates.GBP;
and so on.
等等。
回答by Ammar
You can also use JSON.parse()function of Javascript to convert JSON String into Javascript JSON object.
您还可以使用JSON.parse()Javascript 的函数将 JSON 字符串转换为 Javascript JSON 对象。
var JSONObject = JSON.parse("{'value1' : 1, 'value2' : 2}");
console.log(JSONObject.value1); // Prints '1'..

