gpt4 book ai didi

java - 将复杂的 JSON 转换为 JAVA 对象,其中不同的键将转换为相同类型的对象

转载 作者:行者123 更新时间:2023-12-01 23:59:36 32 4
gpt4 key购买 nike

我想将复杂的 JSON 转换为 Java 对象。我的问题是“child1”和“child2”包含相同的信息。

我还没有找到在转换 JSON 文件并从单个对象生成它们时自动检测 child1 和 child2 的解决方案。在我当前的解决方案中, child 总是必须手动存储在类(class)中。

这是 JSON 文件:

{
"certs":[
"cert1",
"cert2"
],
"parent":{
"child01":{
"prop1":"value1",
"prop2":[
"value1"
],
"prop3":[
"value1"
]
},
"child02":{
"prop1":"value1",
"prop2":[
"value1"
],
"prop3":[
"value1"
]
}
}
}

这是父级的类:

  public class Application {
ArrayList<Object> certs = new ArrayList<Object>();
Parent ParentObject;


// Getter Methods

public Parent getParent() {
return ParentObject;
}

// Setter Methods

public void setParent( Parent parentObject ) {
this.ParentObject = parentObject;
}
}

这是为每个子级创建一个对象的类:

public class Parent {
Child1 Child1Object;
Child2 Child2Object;


// Getter Methods

public Child1 getChild1() {
return Child1Object;
}

public Child2 getChild2() {
return Child2Object;
}

// Setter Methods

public void setChild1( Child1 child1Object ) {
this.Child1Object = child1Object;
}

public void setChild2( Child2 child2Object ) {
this.Child2Object = child2Object;
}
}
public class Child2 {
private String prop1;
ArrayList<Object> prop2 = new ArrayList<Object>();
ArrayList<Object> prop3 = new ArrayList<Object>();


// Getter Methods

public String getProp1() {
return prop1;
}

// Setter Methods

public void setProp1( String prop1 ) {
this.prop1 = prop1;
}
}

这是 child 的类(class):

public class Child1 {
private String prop1;
ArrayList<Object> prop2 = new ArrayList<Object>();
ArrayList<Object> prop3 = new ArrayList<Object>();


// Getter Methods

public String getProp1() {
return prop1;
}

// Setter Methods

public void setProp1( String prop1 ) {
this.prop1 = prop1;
}
}

我不想在父类中单独指定每个对象,因为这意味着如果 JSON 文件用新的子对象扩展,我每次都必须使用子对象名称手动扩展该类。

当我转换 JSON 文件时,应该自动识别 child 的文件,并且应该为每个 child 生成一个具有 child 名称(child1、child2)的对象,而无需在文件中手动输入名称“child1”和“child2”父类。

最佳答案

您永远不应该重复输入完全相同的对象,您应该期望有一个所述对象的列表(或其他形式的集合),因为它始终是可扩展的,并且适合任何场景

关于java - 将复杂的 JSON 转换为 JAVA 对象,其中不同的键将转换为相同类型的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58185209/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com