Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在列表中合并多个作业对象-Json4s_Java_Json_Scala_List - Fatal编程技术网

Java 在列表中合并多个作业对象-Json4s

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

我正在尝试将多个JObject合并为一个JObject。我有一个Jobject列表,我正试图迭代这些Jobject并将它们合并到一个对象中,实际上是创建一个大型json对象

下面的方法很好用,但是在列表中它不起作用。我知道我做错了什么,但不知道是什么

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对象