【发布时间】:2018-08-15 18:02:43
【问题描述】:
查询结果
1->map["id"->"1","name"->"x1",categery->"A","value"->"Dummy1"]
2->map["id"->"2","name"->"x2",categery->"A","value"->"Dummy2"]
3->map["id"->"3","name"->"x3",categery->"B","value"->"Dummy3"]
4->map["id"->"4","name"->"x4",categery->"B","value"->"Dummy4"]
5->map["id"->"5","name"->"x5",categery->"B","value"->"Dummy5"]
6->map["id"->"6","name"->"x6",categery->"B","value"->"Dummy6"]
我正在尝试使用 scala 和 jackson 库从这些地图字段创建一个 json 文件
输出的 Json 应该是这样的
{"Result":
"A":
{"x1":"Dummy1",
"x2":"Dummy2"}
"B":
{"x1":"Dummy3",
"x1":"Dummy4",
"x1":"Dummy5",
"x1":"Dummy6"
}
}
到目前为止我尝试的是
root = mapper.createObjectNode
child = mapper.createObjectNode
categoryA = mapper.createObjectNode
for((row,i)<-query_results.get.zipWithIndex)
val mapfields = row._2
id = mapfields.get("id")
if(id==1)
{
val x1 = mapfields.get("value")
categoryA.put("x1",x1)
}
if(id==2)
{
val x2 = mapfields.get("value")
categoryA.put("x2",x2)
child.set("A",categoryA)
}
root.set("Result",child)
这是可行的,但我有 30 行,如果我遵循这种方法,我需要编写 30 个 if 子句。我希望有人能指导我找到更简单的解决方案。
【问题讨论】: