如何在javascript中使用索引浏览嵌套的JSON文件?
我对编码非常陌生,目前,我正在编写一个React原生项目。对不起,如果问题太简单的话。我尝试了很多导航方法,但都失败了。 我有一个JSON文件,数据如下如何在javascript中使用索引浏览嵌套的JSON文件?,javascript,json,react-native,Javascript,Json,React Native,我对编码非常陌生,目前,我正在编写一个React原生项目。对不起,如果问题太简单的话。我尝试了很多导航方法,但都失败了。 我有一个JSON文件,数据如下 { "values" : { "EquityTechnology": { "_figure": [ 9.138790534659202 ], "ICICIPrudentialTechnologyFundGrowth": { "_figure":
{
"values" : {
"EquityTechnology": {
"_figure": [
9.138790534659202
],
"ICICIPrudentialTechnologyFundGrowth": {
"_figure": [
10.6484932862722
]
},
"Franklin Infotech Fund-Growth": {
"_figure": [
7.96902834459266
]
},
"Birla Sun Life New Millenium Fund - Growth - Regular Plan": {
"_figure": [
8.79884997311275
]
},
"SBI IT FUND - REGULAR PLAN - GROWTH": {
"_figure": [
null
]
}
},
"Equity - SmallCap": {
"_figure": [
14.0064060591969
],
"HDFC Small Cap Fund - Regular Growth Plan": {
"_figure": [
null
]
},
"Reliance Mid & Small Cap Fund -Growth Plan -Growth Option": {
"_figure": [
11.8481966627509
]
},
"Franklin India Smaller Companies Fund-Growth": {
"_figure": [
15.3302065566009
]
},
"Sundaram S.M.I.L.E.Fund-Growth": {
"_figure": [
11.754220292209
]
},
"SBI Magnum MIDCAP FUND - REGULAR PLAN - GROWTH": {
"_figure": [
14.9351631127958
]
},
"Birla Sun Life Small & Midcap Fund - GROWTH": {
"_figure": [
12.3666676648488
]
},
"L&T Emerging Businesses Fund - Regular Plan - Growth Option": {
"_figure": [
null
]
},
"Canara Robeco Emerging Equities - Regular Plan - GROWTH": {
"_figure": [
14.6579568171628
]
},
"Reliance Small Cap Fund - Growth Plan - Growth Option": {
"_figure": [
15.0019513606657
]
},
"DSP BlackRock Micro Cap Fund - Regular - Growth": {
"_figure": [
16.1568860065413
]
}
},
"Equity - Pharma": {
"_figure": [
12.966782129169834
],
"SBI PHARMA - REGULAR PLAN -GROWTH": {
"_figure": [
14.9918670876748
]
},
"UTI Pharma & Healthcare Fund-Growth Option": {
"_figure": [
11.2119667676491
]
},
"Reliance Pharma Fund-Growth Plan-Growth Option": {
"_figure": [
12.6965125321856
]
}
},
"Equity - MultiCap": {
"DSP BlackRock Equity Fund - Regular Plan - Growth": {
"_figure": [
8.32832307169916
]
},
"DSP BlackRock Opportunities Fund-Regular Plan - Growth": {
"_figure": [
9.72369143832476
]
},
"MOSt Focused Multicap 35-Regular Plan-Growth Option": {
"_figure": [
null
]
},
"Reliance Equity Opportunities Fund-Growth Plan-Growth Option": {
"_figure": [
9.79339882843478
]
},
"L&T Equity Fund-Regular Plan-Growth Option": {
"_figure": [
null
]
},
"IIFL India Growth Fund -Regular Plan - Growth": {
"_figure": [
null
]
},
"SBI Magnum Multicap Fund - REGULAR PLAN -Growth Option": {
"_figure": [
10.1704693596904
]
},
"Kotak Select Focus Fund - Growth": {
"_figure": [
10.7785458258239
]
},
"HDFC Equity Fund - Growth Option": {
"_figure": [
8.29168295966879
]
},
"Franklin India Flexi Cap Fund-Growth Plan": {
"_figure": [
9.52777086776355
]
},
"_figure": [
9.998290130663644
],
"Franklin India High Growth Companies Fund - Growth Plan": {
"_figure": [
12.0111958711599
]
},
"Birla Sun Life Equity Fund - Growth - Regular Plan": {
"_figure": [
10.5597033707683
]
},
"ICICI Prudential Value Discovery Fund - Growth": {
"_figure": [
12.494420125849
]
},
"Axis Equity Fund - Growth": {
"_figure": [
8.30198971811754
]
}
},
"Equity - FMCG": {
"_figure": [
12.9391809175777
],
"SBI FMCG FUND - REGULAR - GROWTH": {
"_figure": [
null
]
},
"ICICI Prudential FMCG Fund - Growth": {
"_figure": [
12.9391809175777
]
}
},
"Equity - Banking": {
"_figure": [
7.756301964533782
],
"UTI Banking Sector Fund-Income Option": {
"_figure": [
4.48544488820235
]
},
"Kotak Banking ETF": {
"_figure": [
null
]
},
"Birla Sun Life Banking and Financial Services Fund - Regular Plan - Growth": {
"_figure": [
null
]
},
"R*Shares Bank BeES": {
"_figure": [
null
]
},
"Reliance Banking Fund-Growth Plan-Growth Option": {
"_figure": [
8.2686147173821
]
},
"SBI BANKING & FINANCIAL SERVICES FUND - REGULAR PLAN - GROWTH": {
"_figure": [
null
]
},
"ICICI Prudential Banking and Financial Services Fund - Growth": {
"_figure": [
11.0147287026105
]
},
"UTI Banking Sector Fund-Growth Option": {
"_figure": [
7.25641954994018
]
}
},
"Gold Fund": {
"R*Shares Gold BeES": {
"_figure": [
null
]
},
"_figure": [
4.0762242905284065
],
"HDFC Gold Exchange Traded Fund": {
"_figure": [
6.03459415600124
]
},
"SBI GOLD EXCHANGE TRADED SCHEME": {
"_figure": [
6.14783904734468
]
},
"KOTAK GOLD ETF": {
"_figure": [
-3.40119263557552
]
},
"Kotak Gold Fund Growth": {
"_figure": [
5.61706623223513
]
},
"Axis Gold ETF": {
"_figure": [
5.9828146526365
]
}
}
}
}
我想使用索引浏览JSON,因为数据是动态的,名称可能会随着时间的推移而改变。例如,我应该如何访问“SBI PHARMA-定期计划-增长”的“U图”下的“14.9918670876748”,而“Equity-PHARMA”下的“14.9918670876748”。我想检索所有项目的“\u figure”。我在循环中尝试了..,但它只返回嵌套对象的索引。是否有任何方法可以使用索引浏览JSON文件
先谢谢你
很抱歉英语不好。Object.prototype.hasOwnProperty应该可以做到这一点。这将在迭代时获得键和值。
例如:
var buz = {
fog: 'stack'
};
for (var name in buz) {
if (buz.hasOwnProperty(name)) {
console.log('this is fog (' +
name + ') for sure. Value: ' + buz[name]);
}
else {
console.log(name); // toString or something else
}
}
文档链接:使用此链接从对象as数组中提取所有图形
var figures=[];
Object.keys(data.values).forEach(function(val){
Object.keys(data.values[val]).forEach(function(_val){
if(data.values[val][_val]&&data.values[val][_val]._figure){
figures.push(data.values[val][_val]._figure[0]);
}
});
})
console.log(figures);
片段-1
风险值数据={
价值观:{
设备技术:{
_图:[
9.138790534659202
],
ICIC审慎技术基金增长:{
_图:[
10.6484932862722
]
},
富兰克林信息技术基金增长:{
_图:[
7.96902834459266
]
},
Birla Sun Life新千年基金-增长-定期计划:{
_图:[
8.79884997311275
]
},
SBI IT基金-定期计划-增长:{
_图:[
无效的
]
}
},
股本-小盘股:{
_图:[
14.0064060591969
],
HDFC小型股基金-常规增长计划:{
_图:[
无效的
]
},
信实中小型基金-增长计划-增长选项:{
_图:[
11.8481966627509
]
},
富兰克林印度小型公司基金增长:{
_图:[
15.3302065566009
]
},
Sundaram S.M.I.L.E.基金增长:{
_图:[
11.754220292209
]
},
SBI Magnum MIDCAP基金-定期计划-增长:{
_图:[
14.9351631127958
]
},
Birla Sun Life中小型基金-增长:{
_图:[
12.3666676648488
]
},
L&T新兴业务基金-常规计划-增长选项:{
_图:[
无效的
]
},
卡纳拉·罗伯科新兴股票-常规计划-增长:{
_图:[
14.6579568171628
]
},
信实小型股基金-增长计划-增长选项:{
_图:[
15.0019513606657
]
},
DSP贝莱德微盘基金-常规-增长:{
_图:[
16.1568860065413
]
}
},
股权-制药:{
_图:[
12.966782129169834
],
SBI制药公司-定期计划-增长:{
_图:[
14.9918670876748
]
},
UTI制药和医疗保健基金增长选项:{
_图:[
11.2119667676491
]
},
信实制药基金增长计划增长选项:{
_图:[
12.6965125321856
]
}
},
权益-MultiCap:{
DSP贝莱德股票基金-常规计划-增长:{
_图:[
8.32832307169916
]
},
DSP贝莱德机会基金定期计划-增长:{
_图:[
9.72369143832476
]
},
最受关注的Multicap 35常规计划增长选项:{
_图:[
无效的
]
},
信实股票机会基金增长计划增长选项:{
_图:[
9.79339882843478
]
},
L&T股票基金定期计划增长期权:{
_图:[
无效的
]
},
IIFL印度增长基金-定期计划-增长:{
_图:[
无效的
]
},
SBI Magnum Multicap基金-定期计划-增长选项:{
_图:[
10.1704693596904
]
},
Kotak Select Focus基金-增长:{
_图:[
10.7785458258239
]
},
HDFC股票基金-增长期权:{
_图:[
8.29168295966879
]
},
富兰克林印度Flexi Cap基金增长计划:{
_图:[
9.52777086776355
]
},
_图:[
9.998290130663644
],
富兰克林印度高增长公司基金-增长计划:{
_图:[
12
0111958711599
]
},
Birla Sun人寿股票基金-增长-定期计划:{
_图:[
10.5597033707683
]
},
ICICI保诚价值发现基金-增长:{
_图:[
12.494420125849
]
},
安讯士股票基金-增长:{
_图:[
8.30198971811754
]
}
},
权益-快速消费品:{
_图:[
12.9391809175777
],
SBI快速消费品基金-定期-增长:{
_图:[
无效的
]
},
ICICI保诚快速消费品基金-增长:{
_图:[
12.9391809175777
]
}
},
股权银行:{
_图:[
7.756301964533782
],
UTI银行业基金收益期权:{
_图:[
4.48544488820235
]
},
Kotak银行ETF:{
_图:[
无效的
]
},
Birla Sun人寿银行和金融服务基金-定期计划-增长:{
_图:[
无效的
]
},
R*股份银行:{
_图:[
无效的
]
},
信实银行基金增长计划增长方案:{
_图:[
8.2686147173821
]
},
SBI银行和金融服务基金-定期计划-增长:{
_图:[
无效的
]
},
ICICI保诚银行和金融服务基金-增长:{
_图:[
11.0147287026105
]
},
UTI银行业基金增长选项:{
_图:[
7.25641954994018
]
}
},
黄金基金:{
R*分享黄金蜜蜂:{
_图:[
无效的
]
},
_图:[
4.0762242905284065
],
HDFC黄金交易所交易基金:{
_图:[
6.03459415600124
]
},
SBI黄金交易所交易计划:{
_图:[
6.14783904734468
]
},
KOTAK黄金ETF:{
_图:[
-3.40119263557552
]
},
Kotak黄金基金增长:{
_图:[
5.61706623223513
]
},
安讯士黄金交易所买卖基金:{
_图:[
5.9828146526365
]
}
}
}
};
var数字=[];
Object.keysdata.values.forEachfunctionval{
Object.keysdata.values[val].forEachfunction\u val{
ifdata.values[val][\u val]&数据.values[val][\u val].\u图{
figures.pushdata.values[val][u val]。[u figures[0];
}
};
}
控制台。对数图形;为什么首先要使用object,然后使用array?是否要访问所有图形?hi Nadir,我要访问所有图形。JSON数据是在这个结构中提供给我的。如果所有数据都在一个数组中重新调整,可以吗?是的,没问题,Nadir。非常感谢,Nadir。我会试试这个的。非常感谢,邪恶的波克肖医生~~
var rObj = {
"values" : {
"EquityTechnology": {
"_figure": [
9.138790534659202
],
"ICICIPrudentialTechnologyFundGrowth": {
"_figure": [
10.6484932862722
]
},
"Franklin Infotech Fund-Growth": {
"_figure": [
7.96902834459266
]
},
"Birla Sun Life New Millenium Fund - Growth - Regular Plan": {
"_figure": [
8.79884997311275
]
},
"SBI IT FUND - REGULAR PLAN - GROWTH": {
"_figure": [
null
]
}
},
"Equity - SmallCap": {
"_figure": [
14.0064060591969
],
"HDFC Small Cap Fund - Regular Growth Plan": {
"_figure": [
null
]
},
"Reliance Mid & Small Cap Fund -Growth Plan -Growth Option": {
"_figure": [
11.8481966627509
]
},
"Franklin India Smaller Companies Fund-Growth": {
"_figure": [
15.3302065566009
]
},
"Sundaram S.M.I.L.E.Fund-Growth": {
"_figure": [
11.754220292209
]
},
"SBI Magnum MIDCAP FUND - REGULAR PLAN - GROWTH": {
"_figure": [
14.9351631127958
]
},
"Birla Sun Life Small & Midcap Fund - GROWTH": {
"_figure": [
12.3666676648488
]
},
"L&T Emerging Businesses Fund - Regular Plan - Growth Option": {
"_figure": [
null
]
},
"Canara Robeco Emerging Equities - Regular Plan - GROWTH": {
"_figure": [
14.6579568171628
]
},
"Reliance Small Cap Fund - Growth Plan - Growth Option": {
"_figure": [
15.0019513606657
]
},
"DSP BlackRock Micro Cap Fund - Regular - Growth": {
"_figure": [
16.1568860065413
]
}
},
"Equity - Pharma": {
"_figure": [
12.966782129169834
],
"SBI PHARMA - REGULAR PLAN -GROWTH": {
"_figure": [
14.9918670876748
]
},
"UTI Pharma & Healthcare Fund-Growth Option": {
"_figure": [
11.2119667676491
]
},
"Reliance Pharma Fund-Growth Plan-Growth Option": {
"_figure": [
12.6965125321856
]
}
},
"Equity - MultiCap": {
"DSP BlackRock Equity Fund - Regular Plan - Growth": {
"_figure": [
8.32832307169916
]
},
"DSP BlackRock Opportunities Fund-Regular Plan - Growth": {
"_figure": [
9.72369143832476
]
},
"MOSt Focused Multicap 35-Regular Plan-Growth Option": {
"_figure": [
null
]
},
"Reliance Equity Opportunities Fund-Growth Plan-Growth Option": {
"_figure": [
9.79339882843478
]
},
"L&T Equity Fund-Regular Plan-Growth Option": {
"_figure": [
null
]
},
"IIFL India Growth Fund -Regular Plan - Growth": {
"_figure": [
null
]
},
"SBI Magnum Multicap Fund - REGULAR PLAN -Growth Option": {
"_figure": [
10.1704693596904
]
},
"Kotak Select Focus Fund - Growth": {
"_figure": [
10.7785458258239
]
},
"HDFC Equity Fund - Growth Option": {
"_figure": [
8.29168295966879
]
},
"Franklin India Flexi Cap Fund-Growth Plan": {
"_figure": [
9.52777086776355
]
},
"_figure": [
9.998290130663644
],
"Franklin India High Growth Companies Fund - Growth Plan": {
"_figure": [
12.0111958711599
]
},
"Birla Sun Life Equity Fund - Growth - Regular Plan": {
"_figure": [
10.5597033707683
]
},
"ICICI Prudential Value Discovery Fund - Growth": {
"_figure": [
12.494420125849
]
},
"Axis Equity Fund - Growth": {
"_figure": [
8.30198971811754
]
}
},
"Equity - FMCG": {
"_figure": [
12.9391809175777
],
"SBI FMCG FUND - REGULAR - GROWTH": {
"_figure": [
null
]
},
"ICICI Prudential FMCG Fund - Growth": {
"_figure": [
12.9391809175777
]
}
},
"Equity - Banking": {
"_figure": [
7.756301964533782
],
"UTI Banking Sector Fund-Income Option": {
"_figure": [
4.48544488820235
]
},
"Kotak Banking ETF": {
"_figure": [
null
]
},
"Birla Sun Life Banking and Financial Services Fund - Regular Plan - Growth": {
"_figure": [
null
]
},
"R*Shares Bank BeES": {
"_figure": [
null
]
},
"Reliance Banking Fund-Growth Plan-Growth Option": {
"_figure": [
8.2686147173821
]
},
"SBI BANKING & FINANCIAL SERVICES FUND - REGULAR PLAN - GROWTH": {
"_figure": [
null
]
},
"ICICI Prudential Banking and Financial Services Fund - Growth": {
"_figure": [
11.0147287026105
]
},
"UTI Banking Sector Fund-Growth Option": {
"_figure": [
7.25641954994018
]
}
},
"Gold Fund": {
"R*Shares Gold BeES": {
"_figure": [
null
]
},
"_figure": [
4.0762242905284065
],
"HDFC Gold Exchange Traded Fund": {
"_figure": [
6.03459415600124
]
},
"SBI GOLD EXCHANGE TRADED SCHEME": {
"_figure": [
6.14783904734468
]
},
"KOTAK GOLD ETF": {
"_figure": [
-3.40119263557552
]
},
"Kotak Gold Fund Growth": {
"_figure": [
5.61706623223513
]
},
"Axis Gold ETF": {
"_figure": [
5.9828146526365
]
}
}
}
}
//console.log(rObj.values;);
//container
var values = rObj.values;
//Index
var find = "Equity - Pharma";
//subIndex
var subFind = "SBI PHARMA - REGULAR PLAN -GROWTH";
var case1 = values[find][subFind]["_figure"][0];
If you want to find the specific just change the variables the corresponding
names [find] i.e "Equity - Pharma" then subFind i.e "SBI PHARMA - REGULAR
PLAN -GROWTH"
for(var index in values) {
if(index === find) {
var nextIndex = values[index];
for(var nextFind in nextIndex) {
var Item = nextIndex[nextFind];
if(nextFind === subFind) {
console.log(Item["_figure"][0]);
}
}
}
}