Java 在列表中合并多个作业对象-Json4s
我正在尝试将多个JObject合并为一个JObject。我有一个Jobject列表,我正试图迭代这些Jobject并将它们合并到一个对象中,实际上是创建一个大型json对象 下面的方法很好用,但是在列表中它不起作用。我知道我做错了什么,但不知道是什么Java 在列表中合并多个作业对象-Json4s,java,json,scala,list,Java,Json,Scala,List,我正在尝试将多个JObject合并为一个JObject。我有一个Jobject列表,我正试图迭代这些Jobject并将它们合并到一个对象中,实际上是创建一个大型json对象 下面的方法很好用,但是在列表中它不起作用。我知道我做错了什么,但不知道是什么 val obj1: JObject = RancherHelper.convertToJObject(containers.head) val obj2: JObject = RancherHelper.convertToJObject(conta
val obj1: JObject = RancherHelper.convertToJObject(containers.head)
val obj2: JObject = RancherHelper.convertToJObject(containers(1))
val obj3: JObject = RancherHelper.convertToJObject(containers(2))
val x: JObject = obj1 merge obj2 merge obj3
这不起作用:
def mergeJObjects(containers: List[JObject]): JObject = {
val fullJsonObject: JObject = JObject()
val singleObject = for{
container <- containers
fullObj = fullJsonObject.merge(container)
} yield fullObj
fullJsonObject
}
def mergejobject(容器:列表[JObject]):JObject={
val fullJsonObject:JObject=JObject()
val singleObject=for{
容器折叠列表,而不是映射列表:
def mergeJObjects(containers: List[JObject]): JObject = {
containers.foldLeft(JObject())((merged, next) => merged.merge(next))
}
您在上面所写的是这方面的语法:
val fullJsonObject = JObject()
val singleObject = containers.map { container =>
val fullObj = fullJsonObject.merge(container)
fullObj
}
fullJsonObject
本质上,您是在容器列表上进行映射,对于每个容器,您都将其与一个空JSON对象(fullJsonObject
)合并因此,singleObject
与containers
没有区别;它是原始JSON对象的列表。此外,由于fullJsonObject
是一个不可变的空JObject
,因此您只需在方法末尾返回空JSON对象