java获取json中的全部键值对实例

下面是Java获取JSON中的全部键值对的攻略:

下面是Java获取JSON中的全部键值对的攻略:

步骤一:导入相关包

获取JSON中的全部键值对需要用到Java中的相关包,需要在代码中进行导入,示例代码如下:

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import java.util.Iterator;

其中,com.alibaba.fastjson.JSONcom.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() 方法获取下一个键值对,并将其分别赋值给 keyvalue 变量。最后通过 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中的全部键值对实例

基础教程推荐