【发布时间】:2014-09-06 19:41:44
【问题描述】:
这个问题被问了很多次,但我找不到解决我问题的答案。
我正在尝试将嵌套的 JSON 格式转换为 CSV 格式,如下所示:
JSON 结构是任意的,并且可以是任何东西,无论是否嵌套。
我不知道,这是一个数据库答案,我需要将此 JSON 答案导出到 CSV 文件中。
这是一个示例
输入:
{
"_id": 1,
"name": "Aurelia Menendez",
"scores": [
{
"type": "exam",
"score": 60.06045071030959
},
{
"type": "quiz",
"score": 52.79790691903873
},
{
"type": "homework",
"score": 71.76133439165544
}
]
}
我正在寻找的输出:
_id,name,scores.type,scores.score,scores.type,scores.score,scores.type,scores.score
1,Aurelia Menendez,exam,60.06...,quiz,52.79...,homework,71.76..
这是一个示例,它可以是任何其他 JSON 文档。
这里的想法是在 CSV 列名称中使用点表示法。
我已经使用过 CDL,但输出不是我想要的:
_id scores name
1 "[{score:60.06045071030959,type:exam},{score:52.79790691903873,type:quiz},{score:71.76133439165544,type:homework}]" Aurelia Menendez
那么我怎样才能将嵌套的 JSON 转换为带有点符号和通用方式的 CSV 呢?
编辑
使用 Jackson 对 JSON 进行反序列化:
ObjectMapper mapper=new ObjectMapper();
JsonNode jsonNode=mapper.readValue(new File("C:\\...\\...\...\\test.json"), JsonNode.class);
伊斯梅尔
【问题讨论】:
-
你有什么尝试过的吗?
-
CDL 但我不能随意设置参数,所以我可以得到我想要的输出。
-
@Tichodroma,你有没有遇到过我的问题?
-
您是否考虑过实际编写一些代码? (是的,我知道这样建议是轻率的。)
-
@IsmailSen 我认为 JSON 的形式是有限的。分析您可以从数据库中获取的 JSON 结构的形式,并声明可以反映该结构的 java 类或 java 类。然后使用 GSON 或其他反序列化器来处理这个 json 结构。