java - 更改特定字段的 JSON 数据的值和类型
问题描述
用于持久性的 POJO 类:
class Target{
private Integer status;
private Integer autoLink;
// other fields
}
输入Json格式:
Target
{
"status":"Executed",
"autoLinkIndicator":"YES"
//other fields
}
如何在持久化之前解析 JSON 并更改字段的值?
例如:
如果我看到“状态”:“已执行”,
我想把它改成 "status":1 和 "status":"Terminated" -> "status":0
同样,对于“autoLinkIndicator”
1 表示“是”,0 表示“否”
目前,使用 gson 将 json 解析为 Target 类。
解决方案
我希望以下内容有所帮助 - 没有类的简单解析器,您可以编辑值并传递给持久层
import java.io.FileReader;
import java.util.Iterator;
import java.util.Map;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.*;
public class JSONReadExample
{
public static void main(String[] args) throws Exception
{
Object obj = new JSONParser().parse(new FileReader(<<<<Ur JSON>>>>));
// typecasting obj to JSONObject
JSONObject jsonObj = (JSONObject) obj;
// getting status and autoLinkIndicator
String status = (String) jo.get("status");
String autoLinkIndicator = (String) jo.get("autoLinkIndicator");
System.out.println(status);;
System.out.println(autoLinkIndicator);
//Code logic to alter the values and then persist
}
}
推荐阅读
- sql - SQL:计算列值从前一行发生变化的行
- javascript - 如果设置为 true,Webpack 最小化选项会中断应用程序
- azure - 使用 PowerShell 和 ServicePrincipal 为 AD 用户授予 Azure SQL 访问权限
- laravel - 我如何在控制器索引 Laravel 7 中检查身份验证
- laravel - 结合集合和关系 Eloquent
- javascript - Discord.js V12 找到一个以某事开头的角色
- python - 为什么遵循 Couchbase 异步 Python 代码不起作用?
- php - 所有路线工作正常,但新创建的路线在 laravel 中返回 404
- python - 如何在非重叠间隔上滚动系列元素
- javascript - 使用 then() 使函数可链接