下面是Java获取JSON中的全部键值对的攻略:
步骤一:导入相关包
获取JSON中的全部键值对需要用到Java中的相关包,需要在代码中进行导入,示例代码如下:
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import java.util.Iterator;
其中,com.alibaba.fastjson.JSON
和 com.alibaba.fastjson.JSONObject
为FastJSON包中的类,可以通过 Maven 或 Gradle 等工具进行引入;java.util.Iterator
是Java中的迭代器接口,用于遍历JSON对象中的键值对。
步骤二:解析JSON字符串
获取JSON中的全部键值对首先需要将JSON字符串解析成JSON对象,可以使用FastJSON中的 JSONObject.parseObject()
方法,示例代码如下:
String jsonString = "{\"name\":\"张三\",\"age\":18,\"gender\":\"男\"}"; // 假设JSON字符串为这个
JSONObject jsonObject = JSON.parseObject(jsonString); // 将JSON字符串解析成JSON对象
其中,jsonString
变量为要解析的JSON字符串,JSONObject.parseObject(jsonString)
方法将其解析成JSON对象并赋值给 jsonObject
变量。
步骤三:遍历JSON对象
Java中可以使用 Iterator
接口对JSON对象进行遍历,通过 jsonObject.entrySet()
方法可以返回JSON对象中的所有键值对,示例代码如下:
Iterator<Map.Entry<String, Object>> iterator = jsonObject.entrySet().iterator(); // 获取JSON对象中的所有键值对迭代器
while (iterator.hasNext()) { // 只要迭代器中还有元素
Map.Entry<String, Object> entry = iterator.next(); // 获取下一个键值对
String key = entry.getKey(); // 获取键
Object value = entry.getValue(); // 获取值
System.out.println(key + ": " + value); // 输出键值对
}
其中,jsonObject.entrySet().iterator()
方法获取JSON对象中所有键值对的迭代器,通过 iterator.hasNext()
方法判断迭代器中还有没有元素,如果有,则使用 iterator.next()
方法获取下一个键值对,并将其分别赋值给 key
和 value
变量。最后通过 System.out.println()
方法输出键值对即可。
示例说明一
假设有以下JSON字符串:
{
"name": "李四",
"age": 22,
"gender": "女",
"hobbies": ["唱歌", "跳舞", "看电影"],
"address": {
"province": "浙江",
"city": "杭州",
"district": "西湖区",
"street": "文三路"
}
}
首先需要将其解析成JSON对象:
String jsonString = "{\"name\":\"李四\",\"age\":22,\"gender\":\"女\",\"hobbies\":[\"唱歌\",\"跳舞\",\"看电影\"],\"address\":{\"province\":\"浙江\",\"city\":\"杭州\",\"district\":\"西湖区\",\"street\":\"文三路\"}}"; // 假设JSON字符串为这个
JSONObject jsonObject = JSON.parseObject(jsonString); // 将JSON字符串解析成JSON对象
然后使用迭代器遍历JSON对象中的所有键值对:
Iterator<Map.Entry<String, Object>> iterator = jsonObject.entrySet().iterator(); // 获取JSON对象中的所有键值对迭代器
while (iterator.hasNext()) { // 只要迭代器中还有元素
Map.Entry<String, Object> entry = iterator.next(); // 获取下一个键值对
String key = entry.getKey(); // 获取键
Object value = entry.getValue(); // 获取值
System.out.println(key + ": " + value); // 输出键值对
}
输出结果如下:
name: 李四
age: 22
gender: 女
hobbies: ["唱歌","跳舞","看电影"]
address: {"province":"浙江","city":"杭州","district":"西湖区","street":"文三路"}
示例说明二
假设有以下JSON字符串:
{
"id": 1001,
"name": "iPhone X",
"price": 8999,
"specs": {
"color": "银色",
"storage": "256GB"
}
}
首先需要将其解析成JSON对象:
String jsonString = "{\"id\":1001,\"name\":\"iPhone X\",\"price\":8999,\"specs\":{\"color\":\"银色\",\"storage\":\"256GB\"}}"; // 假设JSON字符串为这个
JSONObject jsonObject = JSON.parseObject(jsonString); // 将JSON字符串解析成JSON对象
然后使用迭代器遍历JSON对象中的所有键值对:
Iterator<Map.Entry<String, Object>> iterator = jsonObject.entrySet().iterator(); // 获取JSON对象中的所有键值对迭代器
while (iterator.hasNext()) { // 只要迭代器中还有元素
Map.Entry<String, Object> entry = iterator.next(); // 获取下一个键值对
String key = entry.getKey(); // 获取键
Object value = entry.getValue(); // 获取值
System.out.println(key + ": " + value); // 输出键值对
}
输出结果如下:
id: 1001
name: iPhone X
price: 8999
specs: {"color":"银色","storage":"256GB"}
以上就是Java获取JSON中的全部键值对的攻略,希望可以帮助到你。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java获取json中的全部键值对实例 - Python技术站