Измените значения и тип JSON данных определенных полей - PullRequest
0 голосов
/ 06 августа 2020

Класс POJO для сохранения :

class Target{
private Integer status;
private Integer autoLink;
// other fields

}

Вход Json формат :

Target
{
"status":"Executed",
"autoLinkIndicator":"YES"
//other fields
}

Как выполнить синтаксический анализ JSON и изменить значения полей перед сохранением?

Например:

если я вижу «статус»: «Выполнено»,

Я хочу изменить его на « status »: 1 и« status »:« Прервано »->« status »: 0

Аналогично, для« autoLinkIndicator »

1 для« ДА », 0 для« НЕТ »

В настоящее время используется gson для синтаксического анализа json в целевой класс.

1 Ответ

0 голосов
/ 06 августа 2020

Надеюсь, что приведенное ниже поможет - простой парсер без класса, и вы можете отредактировать значение и перейти на уровень сохраняемости

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
    }
}
...