在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Linux  HTML/ javascript通過拼接從json數(shù)據(jù)里獲取特定內(nèi)容

javascript通過拼接從json數(shù)據(jù)里獲取特定內(nèi)容

1.這是我的json字符串

{

"綜合指數(shù)分析":
    {    "預(yù)測分析":
        {    "預(yù)測模型":"1111111111111111",
            "預(yù)測值":"2222222",
            "預(yù)測指數(shù)圖":"33333"
        },
        "綜合系統(tǒng)預(yù)警圖":"44444444",
        "指標(biāo)權(quán)值":"5555",
        "趨勢圖":"0000000000",
        "隸屬度":"9999999",
        "指標(biāo)標(biāo)準(zhǔn)":"8888",
        "指標(biāo)預(yù)警圖":"7777777",
        子系統(tǒng)預(yù)警圖":"6666"
    }

}

2.我的需求
通過類似 jsonStr"綜合指數(shù)分析"["預(yù)測模型"] 獲取json字符串中的數(shù)字串,由于我想動態(tài)獲取jsonStr中的內(nèi)容,比如需要"趨勢圖"的“0000000000”時就拼接出
jsonStr["綜合指數(shù)分析"]["趨勢圖"].

3.我的代碼

function getMenuContent(jsonStr){
    $(".folder").each(function(){
        $(this).click(function(){
            var arr=new Array();//保存父級元素文本內(nèi)容
            var txt=$(this).text();//點擊元素文本內(nèi)容
            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());//輸出父級元素的文本內(nèi)容
                    arr.push(obj.html());
                    return this.tagName;
                }
            })
            var content=getJsonStr(arr);
            console.log("jsonStr"+content+"");
            rbleft.text(jsonStr+""+content+"");// 如何通過拼接實現(xiàn)動態(tài)獲取jsonStr的內(nèi)容?????
            return arr;
        })
    })
}


//拼接獲取json字符串的表達式,像jsonStr["綜合指數(shù)分析"]["預(yù)測分析"] 
function getJsonStr(arr){
    var str="";//存儲獲取json字符串的表達式
    for(var i=0;i<arr.length;i++){
        str+='["'+arr[i]+'"]';
    }
    return str;
}


4.如同3中有一行注釋有5個問號,請問如何解決這個需求?
我需要做成比遞歸遍歷更加靈活的操作,就是比如需要哪個數(shù)據(jù)直接就是哪個數(shù)據(jù)。
我是把json數(shù)據(jù)做成了菜單,點擊菜單就直接獲取那個菜單的數(shù)據(jù)。比如點擊"預(yù)測值",
然后就從json數(shù)據(jù)里拿到"預(yù)測值"的"2222222"。我一直認為要從json里拿到
"預(yù)測值"的"2222222",需要先知道"預(yù)測值"的父級"預(yù)測分析"和"綜合指數(shù)分析",
然后通過jsonStr["綜合指數(shù)分析"]["預(yù)測分析"]["預(yù)測值"]獲取到數(shù)據(jù)"2222222"。
請問這個思路對嗎?有更好的思路嗎?
回答
編輯回答
影魅

你這太復(fù)雜了,如果是個合法的json字符串,那么直接用JSON.parse(str)轉(zhuǎn)成一個對象,然后用obj"綜合指數(shù)分析"

2018年5月16日 15:46
編輯回答
赱丅呿

簡單點就用eval

var arr = { "name": "zhangsan" }
var str = "arr['name']"

console.log(eval(str))

function _eval(str) {
    return new Function("return " + str)()
}
console.log(_eval(str))
2017年7月3日 00:27
編輯回答
遺莣
  function getJsonStr(jsonStr,arr) {
                    for (var i = 0; i < arr.length; i++) {
                        jsonStr =jsonStr[arr[i]];
                    }
                    return jsonStr;
                }

str+='["'+arr[i]+'"]';這樣子是獲取不到數(shù)據(jù)的

2018年6月28日 05:14