Js 怎么遍历json对象所有key及根据动态key获取值(根据k值获取相应的value值)

Js代码  
<script type="text/javascript">  
 getJson('age');  

function getJson(key){  
    var jsonObj={"name":"张三","age":"24","profession":"工程师"};  
    //1、使用eval方法      
    var eValue=eval('jsonObj.'+key);  
    alert(eValue);  
<script type="text/javascript">  
 getJson('age');  

function getJson(key){  
    var jsonObj={"name":"张三","age":"24","profession":"工程师"};  
    //1、使用eval方法      
    var eValue=eval('jsonObj.'+key);  
    alert(eValue);  
<span style="color:#ff0000">不过一定要注意 这里给getJson(key)传的参数的key值一定是</span>
"name"或
"age"或
"profession" 
getJson("name") "name") 


//2、遍历Json串获取其属性

for(var item in jsonObj){
if(item==key){ //item 表示Json串中的属性,如'name'
var jValue=jsonObj[item];//key所对应的value
alert(jValue);
}
}

 
<span style="color:#ff0000">不过一定要注意 这里给getJson(key)传的参数的key值一定是</span>
"name"或
"age"或
"profession" 
getJson("name") "name") 

 


//3、直接获取

alert(jsonObj[key]);
}

 

 
<span style="color:#ff0000">不过一定要注意 这里给getJson(key)传的参数的key值一定是</span>
"name"或
"age"或
"profession" 
getJson("name") "name") 

 


</script>

 

<span style="color:#333333">下面为自己写的小案例,可以借鉴一下</span>
 
<script>  // 1 通过eval('json.'+k);这种方法动态的遍历json  var getJson = function(k){  var json = {"a":1,"b":2,"c":3,"d":4,"e":5};  return eval('json.'+k);  };  console.log(getJson("a"));  // 2 遍历json获取其属性  var getJson1 = function(k){  var json = {"a":1,"b":2,"c":3,"d":4,"e":5};  for(var item in json){  if(item == k){  return json[item];  }  };  };  console.log(getJson1("a"));  // 3 直接获取 这是一种很有效的方法不错  var getJson2 = function(k){  var json = {"a":1,"b":2,"c":3,"d":4,"e":5};  return json[k];  };  console.log(getJson2("a"));

 


当然案例中的json都是从后台获取的,这里只是写了一个小案例

 

<span style="color:#333333">通过上边三种方法就可以取到json中key对应的值</span>
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用递归函数来遍历 JSON 中的所有键对,并查找指定键的多个。以下是一个示例代码: ```python def find_values(key, json_dict): results = [] # 如果当前是一个字典,则递归调用自身 if isinstance(json_dict, dict): for k, v in json_dict.items(): if k == key: results.append(v) elif isinstance(v, dict): results.extend(find_values(key, v)) elif isinstance(v, list): for item in v: results.extend(find_values(key, item)) # 如果当前是一个列表,则递归调用自身 elif isinstance(json_dict, list): for item in json_dict: results.extend(find_values(key, item)) return results ``` 这个函数接受两个参数:要查找的键和 JSON 字典。它会递归地遍历整个 JSON 树,查找所有与指定键匹配的,并将它们添加到结果列表中。如果是一个列表或字典,则递归调用自身来查找更多匹配项。 以下是一个使用示例: ```python import json # 示例 JSON 数据 json_data = ''' { "name": "John", "age": 30, "pets": [ {"name": "Fluffy", "type": "cat"}, {"name": "Fido", "type": "dog"} ], "friends": [ {"name": "Alice", "age": 28}, {"name": "Bob", "age": 35} ] } ''' # 将 JSON 数据解析为 Python 对象 data = json.loads(json_data) # 查找 "name" 对应的所有 results = find_values("name", data) print(results) # 输出: ['John', 'Fluffy', 'Fido', 'Alice', 'Bob'] ``` 在这个示例中,我们将 JSON 数据解析为 Python 对象,并使用 `find_values` 函数查找所有名为 "name" 的。结果是一个包含所有匹配的列表,包括顶层键对和嵌套在列表和字典中的

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值