js獲取json中key所對(duì)應(yīng)的value值的簡(jiǎn)單方法
實(shí)例如下:
<script type="text/javascript"> getJson('age'); function getJson(key){ var jsonObj={"name":"傅紅雪","age":"24","profession":"刺客"}; //1、使用eval方法 var eValue=eval('jsonObj.'+key); alert(eValue); //2、遍歷Json串獲取其屬性 for(var item in jsonObj){ if(item==key){ //item 表示Json串中的屬性,如'name' var jValue=jsonObj[item];//key所對(duì)應(yīng)的value alert(jValue); } } //3、直接獲取 alert(jsonObj[''+key+'']); } </script>
通過(guò)上邊三種方法就可以取到j(luò)son中key對(duì)應(yīng)的值
用js方式取得接口里面json數(shù)據(jù)的key和value值
大家在實(shí)際操作中難免遇到對(duì)接口的問(wèn)題,想必對(duì)一些小白來(lái)說(shuō)取得里面想要是數(shù)據(jù)也是很是頭疼,那么接下來(lái)我會(huì)結(jié)合接口實(shí)際情況教大家怎么取得里面相應(yīng)的數(shù)據(jù)
接口數(shù)據(jù)例如:(數(shù)據(jù)為 模擬數(shù)據(jù),json格式)
{ "month": { "monthly": ["2018年4月", "2018年5月"] }, "nameAndRateOperation": { "濟(jì)南華陽(yáng)炭素有限公司": ["91.67", "91.67"], "濟(jì)南萬(wàn)瑞炭素有限責(zé)任公司": ["84", "84"], "濟(jì)南龍山炭素有限公司": ["85.71", "85.71"], "德州歐萊恩永興碳素有限公司": ["70", "80"], "德州永興碳素有限公司": ["90", "90"], "德州乾海碳素有限公司": ["70", "75"], "濟(jì)南海川投資集團(tuán)有限公司": ["81.25", "81.25"], "濟(jì)南匯豐炭素有限公司": ["86", "86"], "山東金利達(dá)碳素有限公司": ["86.68", "80"], "濟(jì)南澳海炭素有限公司": ["85", "85"] }, "nameAndYield": { "濟(jì)南華陽(yáng)炭素有限公司": ["1.2", "1.2"], "濟(jì)南萬(wàn)瑞炭素有限責(zé)任公司": ["4", "4"], "濟(jì)南龍山炭素有限公司": ["2.4", "2.4"], "德州歐萊恩永興碳素有限公司": ["0.8", "1"], "德州永興碳素有限公司": ["0.67", "0.5"], "德州乾海碳素有限公司": ["0.2", "0.25"], "濟(jì)南海川投資集團(tuán)有限公司": ["1.6", "1.6"], "濟(jì)南匯豐炭素有限公司": ["0.8", "0.8"], "山東金利達(dá)碳素有限公司": ["2", "2.5"], "濟(jì)南澳海炭素有限公司": ["4.33", "4.5"] }, "nameAndDateTime": { "濟(jì)南華陽(yáng)炭素有限公司": ["2018年4月", "2018年5月"], "濟(jì)南萬(wàn)瑞炭素有限責(zé)任公司": ["2018年4月", "2018年5月"], "濟(jì)南龍山炭素有限公司": ["2018年4月", "2018年5月"], "德州歐萊恩永興碳素有限公司": ["2018年4月", "2018年5月"], "德州永興碳素有限公司": ["2018年4月", "2018年5月"], "德州乾海碳素有限公司": ["2018年4月", "2018年5月"], "濟(jì)南海川投資集團(tuán)有限公司": ["2018年4月", "2018年5月"], "濟(jì)南匯豐炭素有限公司": ["2018年4月", "2018年5月"], "山東金利達(dá)碳素有限公司": ["2018年4月", "2018年5月"], "濟(jì)南澳海炭素有限公司": ["2018年4月", "2018年5月"] }, "regionAndCompany": { "華東": ["德州歐萊恩永興碳素有限公司", "德州乾海碳素有限公司", "德州永興碳素有限公司", "山東金利達(dá)碳素有限公司", "濟(jì)南澳海炭素有限公司", "濟(jì)南海川投資集團(tuán)有限公司", "濟(jì)南華陽(yáng)炭素有限公司", "濟(jì)南匯豐炭素有限公司", "濟(jì)南龍山炭素有限公司", "濟(jì)南萬(wàn)瑞炭素有限責(zé)任公司"] }, "nameAndCapacity": { "濟(jì)南華陽(yáng)炭素有限公司": ["6", "6"], "濟(jì)南萬(wàn)瑞炭素有限責(zé)任公司": ["5", "5"], "濟(jì)南龍山炭素有限公司": ["7", "7"], "德州歐萊恩永興碳素有限公司": ["30", "30"], "德州永興碳素有限公司": ["20", "20"], "德州乾海碳素有限公司": ["20", "20"], "濟(jì)南海川投資集團(tuán)有限公司": ["8", "8"], "濟(jì)南匯豐炭素有限公司": ["10", "10"], "山東金利達(dá)碳素有限公司": ["15", "15"], "濟(jì)南澳海炭素有限公司": ["10", "10"] }, "storageWithCompany": { "濟(jì)南華陽(yáng)炭素有限公司": ["0.8", "0.8"], "濟(jì)南萬(wàn)瑞炭素有限責(zé)任公司": ["3.2", "3.2"], "濟(jì)南龍山炭素有限公司": ["2.2", "2.2"], "德州歐萊恩永興碳素有限公司": ["1.2", "1.2"], "德州永興碳素有限公司": ["0.5", "0.5"], "德州乾海碳素有限公司": ["0.15", "0.15"], "濟(jì)南海川投資集團(tuán)有限公司": ["1", "1"], "濟(jì)南匯豐炭素有限公司": ["0.5", "1"], "山東金利達(dá)碳素有限公司": ["1.5", "1.5"], "濟(jì)南澳海炭素有限公司": ["2.5", "2.5"] } } json數(shù)據(jù)
獲取代碼
//取出來(lái)所有的地區(qū):華南華北.... for (var key in data.regionAndCompany) { region.push(key); } // console.log(region) //接口取出來(lái)的倉(cāng)儲(chǔ)的數(shù)組 for (key in data.storageWithCompany) { storageWithCompany.push(data.storageWithCompany[key]) } // console.log(storageWithCompany) // //接口取出來(lái)的產(chǎn)能的數(shù)組 // for(key in data.nameAndCapacity){ // capacity.push(data.nameAndCapacity[key]) // } // // console.log(capacity) //接口取出來(lái)的開(kāi)工率的數(shù)組 for (key in data.nameAndRateOperation) { rateOperation.push(data.nameAndRateOperation[key]) } // console.log(rateOperation) //全部的公司名字 for (key in data.nameAndRateOperation) { companyRateOperation.push(key); } // console.log(companyRateOperation) //全部的時(shí)間數(shù)據(jù),二維數(shù)組 for (var key in data.nameAndDateTime) { date.push(data.nameAndDateTime[key]) } // console.log(date) //全部的產(chǎn)量數(shù)組,二維,每個(gè)公司的產(chǎn)量是一個(gè)數(shù)組 for (var key in data.nameAndYield) { yield.push(data.nameAndYield[key]) } // console.log(yield)
再放上網(wǎng)上的方法
js中獲取object類型里鍵值的方法
最近遇到一個(gè)問(wèn)題:
var obj = {"name1":"張三","name2":"李四"};
var key = "name1";
var value = obj.key;//得到了"undefined"
value = obj.name1;//得到了"張三"
其實(shí)我是想動(dòng)態(tài)給key賦值,然后得到key為多少所對(duì)就的值。但這種做法行不通,obj.key會(huì)去找obj下key為"key"所對(duì)應(yīng)的值,結(jié)果當(dāng)然是找不到嘍。
于是,我想到了js中遍歷對(duì)象屬性的方法:
function printObject(obj){ //obj = {"cid":"C0","ctext":"區(qū)縣"}; var temp = ""; for(var i in obj){//用javascript的for/in循環(huán)遍歷對(duì)象的屬性 temp += i+":"+obj[i]+"\n"; } alert(temp);//結(jié)果:cid:C0 \n ctext:區(qū)縣 }
這樣,就可以清楚的知道js中一個(gè)對(duì)象的key和value分別是什么了。
回到剛才的問(wèn)題,怎么動(dòng)態(tài)給key賦值,然后以obj.key的方式得到對(duì)應(yīng)的value呢?
其實(shí)以上printObject中有提示,那就是用obj[key]的方法,key可以是動(dòng)態(tài)的,這樣就解決了我上面提出的問(wèn)題了。
最后說(shuō)一下,還有一個(gè)方法也可以,那就是:eval("obj."+key)。
總結(jié):
js中想根據(jù)動(dòng)態(tài)key得到某對(duì)象中相對(duì)應(yīng)的value的方法有二:
一、var key = "name1";var value = obj[key];
二、var key = "name1";var value = eval("obj."+key);
以上這篇js獲取json中key所對(duì)應(yīng)的value值的簡(jiǎn)單方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
前端如何實(shí)現(xiàn)動(dòng)畫過(guò)渡效果
這篇文章主要介紹了前端如何實(shí)現(xiàn)動(dòng)畫過(guò)渡效果,幫助大家更好的理解和學(xué)習(xí)前端開(kāi)發(fā)網(wǎng)頁(yè),感興趣的朋友可以了解下2021-02-02JavaScript實(shí)現(xiàn)點(diǎn)擊切換功能
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)點(diǎn)擊切換功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-01-01JavaScript實(shí)現(xiàn)讀取上傳視頻文件的時(shí)長(zhǎng)和第一幀畫面過(guò)程講解
當(dāng)我們做一個(gè)后臺(tái)系統(tǒng)的音視頻管理模塊時(shí),通常要限制文件的大小和類型,這篇文章主要介紹了JavaScript實(shí)現(xiàn)讀取上傳視頻文件的時(shí)長(zhǎng)和第一幀畫面過(guò)程,需要詳細(xì)了解實(shí)現(xiàn)方法可以參考下文2023-05-05利用BootStrap彈出二級(jí)對(duì)話框的簡(jiǎn)單實(shí)現(xiàn)方法
彈出二級(jí)對(duì)話框,即在對(duì)話框的基礎(chǔ)上再?gòu)棾鲆粋€(gè)對(duì)話框.這篇文章主要介紹了利用BootStrap彈出二級(jí)對(duì)話框的簡(jiǎn)單實(shí)現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下2016-09-09javascript實(shí)現(xiàn)編寫網(wǎng)頁(yè)版計(jì)算器
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)編寫網(wǎng)頁(yè)版計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08詳解JavaScript數(shù)據(jù)類型和判斷方法
這篇文章主要介紹了JavaScript數(shù)據(jù)類型和判斷方法的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)JavaScript,感興趣的朋友可以了解下2020-09-09JS實(shí)用的帶停頓的逐行文本循環(huán)滾動(dòng)效果實(shí)例
下面小編就為大家?guī)?lái)一篇JS實(shí)用的帶停頓的逐行文本循環(huán)滾動(dòng)效果實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-11-11