js獲取json中key所對應(yīng)的value值的簡單方法
實例如下:
<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所對應(yīng)的value
alert(jValue);
}
}
//3、直接獲取
alert(jsonObj[''+key+'']);
}
</script>
通過上邊三種方法就可以取到j(luò)son中key對應(yīng)的值
用js方式取得接口里面json數(shù)據(jù)的key和value值
大家在實際操作中難免遇到對接口的問題,想必對一些小白來說取得里面想要是數(shù)據(jù)也是很是頭疼,那么接下來我會結(jié)合接口實際情況教大家怎么取得里面相應(yīng)的數(shù)據(jù)
接口數(shù)據(jù)例如:(數(shù)據(jù)為 模擬數(shù)據(jù),json格式)
{
"month": {
"monthly": ["2018年4月", "2018年5月"]
},
"nameAndRateOperation": {
"濟南華陽炭素有限公司": ["91.67", "91.67"],
"濟南萬瑞炭素有限責(zé)任公司": ["84", "84"],
"濟南龍山炭素有限公司": ["85.71", "85.71"],
"德州歐萊恩永興碳素有限公司": ["70", "80"],
"德州永興碳素有限公司": ["90", "90"],
"德州乾海碳素有限公司": ["70", "75"],
"濟南海川投資集團有限公司": ["81.25", "81.25"],
"濟南匯豐炭素有限公司": ["86", "86"],
"山東金利達(dá)碳素有限公司": ["86.68", "80"],
"濟南澳海炭素有限公司": ["85", "85"]
},
"nameAndYield": {
"濟南華陽炭素有限公司": ["1.2", "1.2"],
"濟南萬瑞炭素有限責(zé)任公司": ["4", "4"],
"濟南龍山炭素有限公司": ["2.4", "2.4"],
"德州歐萊恩永興碳素有限公司": ["0.8", "1"],
"德州永興碳素有限公司": ["0.67", "0.5"],
"德州乾海碳素有限公司": ["0.2", "0.25"],
"濟南海川投資集團有限公司": ["1.6", "1.6"],
"濟南匯豐炭素有限公司": ["0.8", "0.8"],
"山東金利達(dá)碳素有限公司": ["2", "2.5"],
"濟南澳海炭素有限公司": ["4.33", "4.5"]
},
"nameAndDateTime": {
"濟南華陽炭素有限公司": ["2018年4月", "2018年5月"],
"濟南萬瑞炭素有限責(zé)任公司": ["2018年4月", "2018年5月"],
"濟南龍山炭素有限公司": ["2018年4月", "2018年5月"],
"德州歐萊恩永興碳素有限公司": ["2018年4月", "2018年5月"],
"德州永興碳素有限公司": ["2018年4月", "2018年5月"],
"德州乾海碳素有限公司": ["2018年4月", "2018年5月"],
"濟南海川投資集團有限公司": ["2018年4月", "2018年5月"],
"濟南匯豐炭素有限公司": ["2018年4月", "2018年5月"],
"山東金利達(dá)碳素有限公司": ["2018年4月", "2018年5月"],
"濟南澳海炭素有限公司": ["2018年4月", "2018年5月"]
},
"regionAndCompany": {
"華東": ["德州歐萊恩永興碳素有限公司", "德州乾海碳素有限公司", "德州永興碳素有限公司", "山東金利達(dá)碳素有限公司", "濟南澳海炭素有限公司", "濟南海川投資集團有限公司", "濟南華陽炭素有限公司", "濟南匯豐炭素有限公司", "濟南龍山炭素有限公司", "濟南萬瑞炭素有限責(zé)任公司"]
},
"nameAndCapacity": {
"濟南華陽炭素有限公司": ["6", "6"],
"濟南萬瑞炭素有限責(zé)任公司": ["5", "5"],
"濟南龍山炭素有限公司": ["7", "7"],
"德州歐萊恩永興碳素有限公司": ["30", "30"],
"德州永興碳素有限公司": ["20", "20"],
"德州乾海碳素有限公司": ["20", "20"],
"濟南海川投資集團有限公司": ["8", "8"],
"濟南匯豐炭素有限公司": ["10", "10"],
"山東金利達(dá)碳素有限公司": ["15", "15"],
"濟南澳海炭素有限公司": ["10", "10"]
},
"storageWithCompany": {
"濟南華陽炭素有限公司": ["0.8", "0.8"],
"濟南萬瑞炭素有限責(zé)任公司": ["3.2", "3.2"],
"濟南龍山炭素有限公司": ["2.2", "2.2"],
"德州歐萊恩永興碳素有限公司": ["1.2", "1.2"],
"德州永興碳素有限公司": ["0.5", "0.5"],
"德州乾海碳素有限公司": ["0.15", "0.15"],
"濟南海川投資集團有限公司": ["1", "1"],
"濟南匯豐炭素有限公司": ["0.5", "1"],
"山東金利達(dá)碳素有限公司": ["1.5", "1.5"],
"濟南澳海炭素有限公司": ["2.5", "2.5"]
}
}
json數(shù)據(jù)
獲取代碼
//取出來所有的地區(qū):華南華北....
for (var key in data.regionAndCompany) {
region.push(key);
}
// console.log(region)
//接口取出來的倉儲的數(shù)組
for (key in data.storageWithCompany) {
storageWithCompany.push(data.storageWithCompany[key])
}
// console.log(storageWithCompany)
// //接口取出來的產(chǎn)能的數(shù)組
// for(key in data.nameAndCapacity){
// capacity.push(data.nameAndCapacity[key])
// }
// // console.log(capacity)
//接口取出來的開工率的數(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ù)據(jù),二維數(shù)組
for (var key in data.nameAndDateTime) {
date.push(data.nameAndDateTime[key])
}
// console.log(date)
//全部的產(chǎn)量數(shù)組,二維,每個公司的產(chǎn)量是一個數(shù)組
for (var key in data.nameAndYield) {
yield.push(data.nameAndYield[key])
}
// console.log(yield)
再放上網(wǎng)上的方法
js中獲取object類型里鍵值的方法
最近遇到一個問題:
var obj = {"name1":"張三","name2":"李四"};
var key = "name1";
var value = obj.key;//得到了"undefined"
value = obj.name1;//得到了"張三"
其實我是想動態(tài)給key賦值,然后得到key為多少所對就的值。但這種做法行不通,obj.key會去找obj下key為"key"所對應(yīng)的值,結(jié)果當(dāng)然是找不到嘍。
于是,我想到了js中遍歷對象屬性的方法:
function printObject(obj){
//obj = {"cid":"C0","ctext":"區(qū)縣"};
var temp = "";
for(var i in obj){//用javascript的for/in循環(huán)遍歷對象的屬性
temp += i+":"+obj[i]+"\n";
}
alert(temp);//結(jié)果:cid:C0 \n ctext:區(qū)縣
}
這樣,就可以清楚的知道js中一個對象的key和value分別是什么了。
回到剛才的問題,怎么動態(tài)給key賦值,然后以obj.key的方式得到對應(yīng)的value呢?
其實以上printObject中有提示,那就是用obj[key]的方法,key可以是動態(tài)的,這樣就解決了我上面提出的問題了。
最后說一下,還有一個方法也可以,那就是:eval("obj."+key)。
總結(jié):
js中想根據(jù)動態(tài)key得到某對象中相對應(yīng)的value的方法有二:
一、var key = "name1";var value = obj[key];
二、var key = "name1";var value = eval("obj."+key);
以上這篇js獲取json中key所對應(yīng)的value值的簡單方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
火狐下table中創(chuàng)建form導(dǎo)致兩個table之間出現(xiàn)空白
js加入form導(dǎo)致兩個table之間出現(xiàn)空白,還有另一種說法在table中創(chuàng)建form表單是不符合DOM標(biāo)準(zhǔn)的,會導(dǎo)致post失效,以及js數(shù)據(jù)傳輸失效2013-09-09
在LayUI圖片上傳中,解決由跨域問題引起的請求接口錯誤的方法
今天小編就為大家分享一篇在LayUI圖片上傳中,解決由跨域問題引起的請求接口錯誤的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09
用js模擬struts2的多action調(diào)用示例
這篇文章主要介紹了用js模擬struts2的多action調(diào)用的實現(xiàn)過程,需要的朋友可以參考下2014-05-05

