当前位置: 首页 > 知识库问答 >
问题:

将groovy映射的键值对转换为JSON数组元素

向苗宣
2023-03-14

如何获取groovy映射的键/值对值并循环到groovyJSON数组元素中?。

例如:

输入:

def childmap = ["data1": "123 "," data2": "234 "," data3": "456"]

def儿童地图2=["data4":"123","data5":"234","data6":"456","date7":"676"]

def父母地图=["Key1":"Value1","Key2":"Value2","Key3":儿童地图,"key 4":儿童地图2]

预期JSON输出:

{
 "Json":{
   "Key1":"Value1",
   "Key2":"Value2"
   "key3":[
      {
         "Name": "data1",
         "ID": "123"
      },
      {
         "Name": "data2",
         "ID": "234"
      },
      {
          "Name": "data3",
          "ID": "456"
      }
   ],
  "key4":[
      {
         "Name": "data4",
         "ID": "123"
      },
      {
         "Name": "data5",
         "ID": "123"
      },
      {
         "Name": "data6",
         "ID": "234"
      },
      {
          "Name": "data7",
          "ID": "456"
      }
   ]
}

}

共有1个答案

孟俊发
2023-03-14

这适用于您的示例。如果你有更深的嵌套,这是行不通的。

def newmap = parentmap.collectEntries { key, value ->
    [key, (value instanceof Map) ? value.collect {key2, value2 -> [Name: key2, ID: value2]} : value]}


def builder = new JsonBuilder([Json : newmap])
println builder.toPrettyString()
 类似资料:
  • 我试图将JSON数组转换为具有指定键/值对的元素是对象

  • 问题内容: 我正在使用jQuery的parseJSON()函数将json字符串插入变量中。问题是,它正在将我的数据变成一个对象,而不是一个二维数组。例如, 问题是,“名称”不应该是 键 (假设这是正确的术语)。相反,它应该是: 我将如何转换呢?还是有一个不同于使用for循环遍历数组索引的方法(但仍然可以像在2d数组中一样,以字符串形式访问键和值)。 编辑:这是一些正在使用的json(请注意,它的使

  • 我在Spark中有一个数据框,看起来像这样: 它有30列:只显示其中的一些! 因此,我必须在Scala中将这个数据帧转换成一个键值对,使用键作为数据帧中的一些列,并为这些键分配从索引0到计数(不同的键数)的唯一值。 例如:使用上面的案例,我希望在Scala中的map(key-value)集合中有一个输出,如下所示: 我对斯卡拉和斯帕克是新手,我试着做这样的事情。 但是,这不起作用。:/此操作完成后

  • 控制台输出 编辑:

  • 使用代替和代替 然后在请求属性中添加 但是当我在javascript中检索它时,我得到了jsonObject的值 我在我的项目中已经使用了下面的库,如果需要,可以使用任何新的库

  • 问题内容: 我有一个从包含重复密钥的数据库中获取的JSON字符串。我想通过将重复键的值组合到数组中来删除重复键。 例如 输入项 输出量 实际数据是一个可能嵌套的大文件。我不会提前知道有多少对。 我需要为此使用Java。org.json由于重复的键而引发异常,gson可以解析该字符串,但是每个重复的键都会覆盖最后一个。我需要保留所有数据。 如果可能的话,我想不编辑任何库代码就这样做 问题答案: 从今