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

相关推荐
java1234_小锋1 分钟前
Java高频面试题:BIO、NIO、AIO有什么区别?
java·面试·nio
用户83071968408216 分钟前
Java IO三大模型(BIO/NIO/AIO)超详细总结
java
sheji341616 分钟前
【开题答辩全过程】以 基于SSM的花店销售管理系统为例,包含答辩的问题和答案
java
Mr_sun.28 分钟前
Day09——入退管理-入住-2
android·java·开发语言
MAGICIAN...39 分钟前
【java-软件设计原则】
java·开发语言
JH30731 小时前
为什么switch不支持long
java
盐真卿1 小时前
python第八部分:高级特性(二)
java·开发语言
上海合宙LuatOS1 小时前
LuatOS核心库API——【audio 】
java·网络·单片机·嵌入式硬件·物联网·音视频·硬件工程
汤姆yu1 小时前
基于springboot的尿毒症健康管理系统
java·spring boot·后端
TT哇1 小时前
【实习】银行经理端线下领取扫码功能实现方案
java