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包。

相关推荐
HEJOO91 小时前
指针的算术运算详解
java·数据结构·算法
sunshine22 girl1 小时前
Java学习六 Java常见API-2--String-3-字符串的截取替换和其他方法
java·开发语言·学习
EatFan1 小时前
从“框架混战“到“运行时收敛“:2026 年 AI Agent 开发框架的三条路线之争
java·数据库·人工智能·多智能体·ai agent·mcp·agent 框架
小蒜学长1 小时前
基于SpringBoot的佳新超市管理系统设计与实现系统(代码+数据库+LW)
java·数据库·spring boot·后端·佳新超市管理系统
sunshine22 girl2 小时前
Java学习六 Java常见API-1-Radom随机数
java·开发语言·学习
wangbing11252 小时前
使用jps jstack排查系统问题
java
于指尖飞舞3 小时前
java面试题总结
java·开发语言
ZealSinger3 小时前
LangChain4j用AiServices拼Tool
java·rag·ai智能体·langchain4j
vx_Biye_Design3 小时前
springboot高校选课系统82776-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·spring·课程设计·express
Sweet锦4 小时前
不调 Python,不装向量库:我用纯 Java 写了一套以图搜图引擎
java·人工智能·开源·图搜索