1.fastjson
导入依赖
<!--fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>版本号</version>
</dependency>
确保你有和JSON字符串中的属性对应的实体类
import lombok.Data;
@Data
public class VideoAlarm {
private int eventType;
private String monitorTaskId;
private String monitorTaskName;
private String modelName;
private String modelId;
}
代码
package com.rococo.kafka.consumer;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.rococo.entity.VideoAlarm;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class FastJSONDemo {
public static void main(String[] args) {
// 假设 jsonString 存储了你提供的 JSON 字符串
String jsonString = "{ \"eventType\":5, \"monitorTaskId\":\"6662776da176678277656618\", \"monitorTaskName\":\"备品备件库东侧球机-安全帽\", \"modelName\":\"安全帽检测\", \"modelId\":\"658930eeac797b0c66e13a51\" }";
VideoAlarm videoAlarm = JSONArray.parseObject(jsonString,VideoAlarm.class);
log.info("json转对应的实体类 -------> " + videoAlarm);
//可以通过 videoAlarm 对象的 getter 方法获取每个键值对的值
log.info("解析对象获取到的值 -------> " + videoAlarm.getModelName());
//将对象转为JSON字符串
String s = JSON.toJSONString(videoAlarm);
log.info("将对象转为JSON字符串 ----> "+ s);
}
}
运行结果
2.ObjectMapper
导入依赖
<!--String转JSON-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>版本号</version>
</dependency>
同样要确保你有和JSON字符串中的属性对应的实体类
代码
package com.rococo.kafka.consumer;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.rococo.entity.VideoAlarm;
import lombok.extern.slf4j.Slf4j;
import java.io.IOException;
@Slf4j
public class StrToJSON {
public static void main(String[] args) {
// 假设 jsonString 存储了你提供的 JSON 字符串
String jsonString = "{ \"eventType\":5, \"monitorTaskId\":\"6662776da176678277656618\", \"monitorTaskName\":\"备品备件库东侧球机-安全帽\", \"modelName\":\"安全帽检测\", \"modelId\":\"658930eeac797b0c66e13a51\" }";
ObjectMapper objectMapper = new ObjectMapper();
try {
//将JSON字符串转为对象
VideoAlarm monitorEvent = objectMapper.readValue(jsonString, VideoAlarm.class);
log.info("将JSON字符串转为对象 ----> "+ monitorEvent);
// 现在 monitorEvent 对象中存储了从 JSON 字符串中解析得到的键值对的值,可以通过 monitorEvent 对象的 getter 方法获取每个键值对的值
log.info("解析字符串获取到的值 ------> " + monitorEvent.getModelName()) ;
//将对象转为JSON字符串
String s = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(monitorEvent);
log.info("将对象转为JSON字符串 ----> "+ s);
} catch (IOException e) {
// 处理 JSON 解析时可能出现的异常
e.printStackTrace();
}
}
}
运行结果