在java中合并json对象
我有json对象的在java中合并json对象,java,json,list,arraylist,merge,Java,Json,List,Arraylist,Merge,我有json对象的List和字符串的List: 使用以下参数列出列表1:名称,年龄 列表列表2带参数:姓氏 因此,我想创建以下格式的对象列表: 列表1中的姓氏和列表2中的姓名和年龄 List 1 = [{Name: "John"; Age:28;}, {Name: "Mery" Age:22}] List 2 = [{Surname: "Junior"}, {Surname: "Constant"}] List 3 = [{Surname: "Junior" Name:"John" Age: 2
List
和字符串的List
:
使用以下参数列出列表1
:名称
,年龄
列表列表2
带参数:姓氏
因此,我想创建以下格式的对象列表:
列表1中的姓氏和列表2中的姓名和年龄
List 1 = [{Name: "John"; Age:28;}, {Name: "Mery" Age:22}]
List 2 = [{Surname: "Junior"}, {Surname: "Constant"}]
List 3 = [{Surname: "Junior" Name:"John" Age: 28} , {Surname:"Constant" , Name:"Mery", Age:22}]
那么如何创建第三个列表呢?我建议Ovject1类有3个属性:名称、年龄和姓氏。我也认为它有能手和二传手
您可以在两个列表上执行相同的循环,并从第二个列表中获取数据,然后放到第一个列表中。您可以检查这两个列表之前是否具有相同的大小
int size=list1.size();
List<Object1> list3 = new ArrayList<Object1>();
for(int i=0;i < size;i++){
object1 = list1.get(i);
object1.setSurname(list2.get(i));
list3.add(object1);
}
int size=list1.size();
List list3=新的ArrayList();
对于(int i=0;i
使用Jackson从您的Object1/Object2…ObjectN创建一个映射,然后合并映射,它也被称为Map/reduce模式
映射阶段:将对象转换为java.util.Map的实例
减少阶段:合并贴图对象
或者,您可以再次将结果映射序列化到域类
看看这个例子,它确实做了你想做的事情:你可以创建一个新对象,它有三个属性Object3:{姓氏,姓名,年龄}
,并创建一个新列表,使用循环读取list1
和list2
的值,然后填充第三个列表。(假设它们大小相同)
然后在它们上面循环:
public List<Object3> mergeLists(List<Object1> list1, List<String> list2){
int size = list1.size();
List<Object3> list3 = new ArrayList<Object3>(size);
for ( int i = 0; i < size; i++){
Object3 obj = new Object3(list2.get(i),
list1.get(i).getName(),
list1.get(i).getAge());
list3.add(obj);
}
}
公共列表合并列表(列表1、列表2){
int size=list1.size();
List list3=新阵列列表(大小);
对于(int i=0;i
或者只需将姓氏
属性添加到Object1
中,然后在列表2上循环添加Sirnames即可 您的问题是?我想知道如何创建第三个列表您需要编写一些代码…并定义一些类来表示您的对象。可能的属性副本必须以Java类中的小写字符开头我得到了该代码,但我在列表中有一个错误。of:此行有多个标记-方法(JacksonDemo.UserPersonalDetails,JacksonDemo.UserPersonalDetails)未定义类型列表-行断点:JacksonDemo[Line:55]-main(String[])使用java9或将List.of替换为Java8模拟
public List<Object3> mergeLists(List<Object1> list1, List<String> list2){
int size = list1.size();
List<Object3> list3 = new ArrayList<Object3>(size);
for ( int i = 0; i < size; i++){
Object3 obj = new Object3(list2.get(i),
list1.get(i).getName(),
list1.get(i).getAge());
list3.add(obj);
}
}