1.这是我的json字符串
{
"综合指数分析":
{ "预测分析":
{ "预测模型":"1111111111111111",
"预测值":"2222222",
"预测指数图":"33333"
},
"综合系统预警图":"44444444",
"指标权值":"5555",
"趋势图":"0000000000",
"隶属度":"9999999",
"指标标准":"8888",
"指标预警图":"7777777",
子系统预警图":"6666"
}
}
2.我的需求
通过类似 jsonStr"综合指数分析"["预测模型"] 获取json字符串中的数字串,由于我想动态获取jsonStr中的内容,比如需要"趋势图"的“0000000000”时就拼接出
jsonStr["综合指数分析"]["趋势图"].
3.我的代码
function getMenuContent(jsonStr){
$(".folder").each(function(){
$(this).click(function(){
var arr=new Array();//保存父级元素文本内容
var txt=$(this).text();//点击元素文本内容
var rbleft=$("#right-bottom-left");
var parentEls=$("span:contains("+txt+")").parents().filter("li").map(function(){
if(this.tagName=="LI"){//this.tagName=="UL"||"LI"
var obj=$(this).children("span").first().clone();
console.log(obj.html());//输出父级元素的文本内容
arr.push(obj.html());
return this.tagName;
}
})
var content=getJsonStr(arr);
console.log("jsonStr"+content+"");
rbleft.text(jsonStr+""+content+"");// 如何通过拼接实现动态获取jsonStr的内容?????
return arr;
})
})
}
//拼接获取json字符串的表达式,像jsonStr["综合指数分析"]["预测分析"]
function getJsonStr(arr){
var str="";//存储获取json字符串的表达式
for(var i=0;i<arr.length;i++){
str+='["'+arr[i]+'"]';
}
return str;
}
4.如同3中有一行注释有5个问号,请问如何解决这个需求?
我需要做成比递归遍历更加灵活的操作,就是比如需要哪个数据直接就是哪个数据。
我是把json数据做成了菜单,点击菜单就直接获取那个菜单的数据。比如点击"预测值",
然后就从json数据里拿到"预测值"的"2222222"。我一直认为要从json里拿到
"预测值"的"2222222",需要先知道"预测值"的父级"预测分析"和"综合指数分析",
然后通过jsonStr["综合指数分析"]["预测分析"]["预测值"]获取到数据"2222222"。
请问这个思路对吗?有更好的思路吗?
str+='["'+arr[i]+'"]';这样子是获取不到数据的