假设有个json格式的字符串,
String jsonStr = "{\"RECORDS\":[{\"TABLENAME\":\"PT_NAVIGAT\",\"UPD_TIMESTAMP\":\"202001010101\"},{\"TABLENAME\":\"CHECKCODE\",\"UPD_TIMESTAMP\":\"202001020101\"}]}";
需求是改变TABLENAME为CHECKCODE的UPD_TIMESTAMP值。
使用到的依赖有:
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
具体代码实现如下:
public class JSONObjectDemo {
public static void main(String[] args) {
String update_time = "123456";
String jsonStr = "{\"RECORDS\":[{\"TABLENAME\":\"PT_NAVIGAT\",\"UPD_TIMESTAMP\":\"202001010101\"},{\"TABLENAME\":\"CHECKCODE\",\"UPD_TIMESTAMP\":\"202001020101\"}]}";
JSONObject jo = JSONObject.fromObject(jsonStr);
JSONArray jsonArray = jo.getJSONArray("RECORDS");
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String tablename = jsonObject.getString("TABLENAME");
if("CHECKCODE".equals(tablename)){
jsonObject.put("UPD_TIMESTAMP", update_time);
}
}
JSONObject json = new JSONObject();
json.put("RECORDS", jsonArray);
System.out.println(json);
}
}