Как сохранить объект Json как строку в один столбец в Java - PullRequest
0 голосов
/ 18 октября 2019

Как сохранить / извлечь ниже Json Object в базу данных, как будто все правила должны содержать массив в виде строки:

[{"ID":1,
 "parentId":1,
 "level":1,
  "rule":"abc",
 "fieldName":"cds",
 "allrule":[
  {}
   ]
   },
  {"ID":2,
  "parentId":2,
  "level":2,
  "rule":"abcas",
  "fieldName":"cdgf",
  "allrule":[{"firstname":"rohit","min":5,"max":10}
  ]
  }
  ]

Здесь значения внутри объекта "all rule" могут быть динамическими, как будто не может быть никакого ключапара значений во время выполнения. Надеюсь, это не сбивает с толку постановку проблемы. Я попробовал логику @OneToMany и сохранил данные объекта Json в отдельной таблице. Фрагмент кода:

@Entity
@Table(name = "Allrule")
public class ListofRules {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int allruleId;
    private String key1;
    private String value1;
    @ManyToOne(cascade = { CascadeType.ALL })
    private Rule rule;
//getters,setters

@Entity
@Table(name = "Rule")
public class Rule {

    @Id
    private int ID;
    private int parentId;
    private int level;
    private String rule;
    private String fieldName;

    @OneToMany(fetch = FetchType.EAGER,cascade= {CascadeType.ALL})
    @JoinColumn(name="rule_id")
    private List<ListofRules> listofrules;

    //getter,setter
 }

Но мне нужно сохранить и извлечь данные Json, как показано ниже. Вывод, как показано ниже: Согласно моемулогика я получаю JSON ответ, как:

[
 {"ID":1,
 "parentId":1,
 "level":1,
 "rule":"abc",
"fieldName":"cds",
 allrule":[{}]
 },
 {"ID":2,
 "parentId":2,
 "level":2,
 "rule":"abcas",
 "fieldName":"cdgf",
 "allrule":[{"Key1":"rohit","value1":5},{"Key1":"dinesh","value1":19}]
 }
 ]

1 Ответ

0 голосов
/ 18 октября 2019

Вы можете использовать Джексон Object Mapper для преобразования объекта в строку и визу-версии,

http://tutorials.jenkov.com/java-json/jackson-objectmapper.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...