如何不使用jsonobject.get("id")方法从JSON对象获取键值并生成"id :780"字符串
实现方案
核心思路
不直接硬编码key调用get("id")方法取值,而是遍历JSON对象的所有键值对,匹配到key等于id时,直接取对应的value拼接为"id :780"格式的目标字符串即可。
注意:你给出的JSON片段为外层对象的一个属性,实际使用时请先取出
"Stores create/update"数组的第一个元素作为待处理的目标JSON对象,再执行后续遍历逻辑。
JavaScript 实现
// 待处理的目标JSON对象 const targetObj = { "id": 780, "callback": "Stores create/update", "date": "2021-10-07" }; let result = ''; // 遍历所有键值对 for (const [key, value] of Object.entries(targetObj)) { if (key === 'id') { result = `"${key} :${value}"`; break; } } console.log(result); // 输出结果:"id :780"
Java 实现(基于org.json包)
注:此处get方法传入的是遍历获取的动态key变量,不是直接硬编码"id"作为参数,符合要求。
import org.json.JSONObject; import java.util.Iterator; public class JsonParseTest { public static void main(String[] args) { // 待处理的目标JSON对象 JSONObject targetObj = new JSONObject("{\"id\": 780,\"callback\": \"Stores create/update\",\"date\": \"2021-10-07\"}"); String result = ""; // 遍历所有key Iterator<String> keyIterator = targetObj.keys(); while(keyIterator.hasNext()) { String key = keyIterator.next(); if("id".equals(key)) { Object value = targetObj.get(key); result = "\"" + key + " :" + value + "\""; break; } } System.out.println(result); // 输出结果:"id :780" } }
Python 实现
# 待处理的目标JSON对象 target_obj = { "id": 780, "callback": "Stores create/update", "date": "2021-10-07" } result = "" # 遍历所有键值对 for key, value in target_obj.items(): if key == "id": result = f'"{key} :{value}"' break print(result) # 输出结果:"id :780"
内容的提问来源于stack exchange,提问作者Mounika
相关产品推荐
相关产品推荐

