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

相关推荐
敲代码的嘎仔18 分钟前
用 Redis 合并写 + DelayQueue 延迟检测,把视频播放进度写库频率降到 1/60
java·开发语言·数据库·redis·缓存·音视频·高并发
youyou-06061 小时前
AUTOSAR‑COM 常见问题 QA (1)
java·linux·服务器·单片机·汽车
谢亮_vipxieliang1 小时前
ValidX时间段验证详解:ISO 8601标准与简化格式
java·spring boot·后端·spring·spring cloud·hibernate
Lsetea1 小时前
Java 请求 HTTPS 报 PKIX path building failed:从证书链到 truststore 的完整排查
java·https·ssl证书·keytool·truststore
gf13211111 小时前
【python_发送飞书卡片消息_直接组装JSON格式发送卡片】
python·json·飞书
蓝桉柒72 小时前
java判断语句
java·开发语言
Zane19942 小时前
String::compareTo凭什么能当参数传?方法引用的四种形式讲透
java·后端
青山木2 小时前
Hot 100 --- 打家劫舍
java·数据结构·算法·leetcode·动态规划
敲代码的嘎仔2 小时前
28届后端开发-百人小厂面试题
java·后端·面试·程序员·秋招·实习·转正
Bs_MoneyMagnet2 小时前
基于springboot+vue的爱心众筹系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·spring·管理系统