JSON与Object等的相互转换

JSON与Object的转换

java 复制代码
// 将 Object 对象转换为 String 类型
String jsonString = JSON.toJSONString(body);

// 将 String 或 byte[] 转换为 JSONObject 类型
JSONObject jsonObject = JSONObject.parseObject(jsonString);
// 根据键key获取 JSONObject 中的某一个键值对的值
String keyValue = jsonObject.getString("key");

// 将 String 或 byte[] 转换为 Object 类型
Object object = JSONObject.parse(jsonString);

JSON数组字符串类型转换为JSON数组

使用org.json.JSONArray

java 复制代码
import org.json.JSONArray;
import org.json.JSONObject;
java 复制代码
// 提供的JSON数组字符串         
String jsonArrayString = "[{ \"key1\": \"value1\", \"key2\": \"value2\", \"key3\": \"value3\"},{ \"key1\": \"value1\", \"key2\": \"value2\", \"key3\": \"value3\"},{ \"key1\": \"value1\", \"key2\": \"value2\", \"key3\": \"value3\"}]";

// 将JSON数组字符串解析为JSONArray对象
JSONArray array = new JSONArray(jsonArrayString);

// 遍历JSON数组
for (int i = 0; i < array.length(); i++) {
	// 获取数组中的JSONObject
	JSONObject jsonObject = array.getJSONObject(i);

	// 获取JSONObject中的属性值
	String value1 = jsonObject.getString("key1");
	String value3 = jsonObject.getLong("key3");
	// 打印属性值或进行其他操作
	System.out.println("Key1: " + value1);
	System.out.println("Key3: " + value3);
	System.out.println(jsonObject);
} 

输出每个jsonObject:

bash 复制代码
{"key1":"value1","key2":"value2","key3":"value3"} 
{"key1":"value1","key2":"value2","key3":"value3"}
{"key1":"value1","key2":"value2","key3":"value3"}

使用cn.hutool.json.JSONArray

java 复制代码
import cn.hutool.json.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSON;  
java 复制代码
JSONArray array = new JSONArray(jsonArrayString); 
for (Object item : array) {     
	// 根据键得到值    
	String value1 = JSONObject.parseObject(JSON.toJSONString(item)).getString("key1");
	System.out.println(item);
} 
bash 复制代码
{"key1":"value1","key2":"value2","key3":"value3"} {"key1":"value1","key2":"value2","key3":"value3"} {"key1":"value1","key2":"value2","key3":"value3"}

以上两种方法引用了不同的JSONArray包。

相关推荐
晨曦中的暮雨10 分钟前
限流算法——固定窗口、滑动窗口、漏桶、令牌桶
java·开发语言·算法
文丑颜不良啊1 小时前
LeetCode876~900题目解析
java·leetcode
aloha_7892 小时前
Java 基础、集合、异常与 JUnit 5 速查
java·junit·sqlserver
知守观3 小时前
设计模式实战:从真实老项目中看标准模板方法与工厂的落地
java·spring·设计模式
独隅3 小时前
Claude API 实战教程:从入门到完整项目
android·java·数据库·claude·claude code
Wang's Blog3 小时前
Java 项目实战: 交友项目 - 圈子功能实现:总结
java·开发语言·交友
SL_staff3 小时前
JVS私有化文档系统上线避坑指南:5大运维与业务协同断点及检测加固实践
java·开源·全栈
FinelyYang5 小时前
考试系统简答题 AI 阅卷:覆盖度驱动、异步评分与人机协同落地实践
java·大数据·人工智能
hhhjhl5 小时前
Yup 跨端三方库仓颉适配全流程
java·开发语言
用户3126874877205 小时前
Java 对象内存布局:压缩指针、对齐填充与 JOL 实测
java