我有一个复杂的贾森文件,我希望它能转换成CSV文件使用Java Spring启动。
下面是我的复杂json文件:
{
"requestId": "1P02XV425KCASEZGQLB8LPQMF4ZXCURRR01",
"recyleBinRecords": [
{
"Record": {
"ProductName": "Name1",
"Id": "1P02XV425KCASEZGQLB8LPQMF4ZXCUBCTA01"
"ProductArea": "Area1"
},
"dependecyMaterial": [
{
"Name": "D1",
"id": "1P02XV425KCASEZGQLB8LPQMF4ZXCUBCTA01",
"parentid": "1P02XV425KCASEZGQLB8LPQMF4ZXCUBCTA01",
"value": "Value1"
},
{
"Name": "d2",
"id": "1P02XV425KCASEZGQLB8LPQMF4ZXCUBCTA01",
"parentid": "1P02XV425KCASEZGQLB8LPQMF4ZXCUBCTA01",
"value": "value2"
}]},{
"Record": {
"ProductName": "Name2",
"Id": "1P02XV425KCASEZGQLB8LPQMF4ZXCUBCTA01",
"ProductArea": "Product2"
},
"dependecyMaterial": [
{
"Name": "D3",
"id": "1P02XV425KCASEZGQLB8LPQMF4ZXCUBCTA01",
"parentid": "P1",
"value": "value1"
},
{
"Name": "D4",
"id": "1P02XV425KCASEZGQLB8LPQMF4ZXCUBCTA01",
"parentid": "P2",
"value": "value2"
}
]
}
]
}
下面是我尝试过的代码,但它没有给出任何异常。
x一个一个一个一个x一个一个二个x
需要一个解决方案来转换我的JSON到CSV在java.
1条答案
按热度按时间nzrxty8p1#
有几个原因会导致这种情况。出现异常的主要原因是您的csv架构没有要Map的列。运行调试器,查看
JsonNode firstObject = jsonTree.elements().next();
行返回的内容以及运行firstObject.fieldNames().forEachRemaining(fieldName -> {csvSchemaBuilder.addColumn(fieldName);} );
时向架构添加了哪些字段话虽如此,由于CSV生成器不支持嵌套对象,解析可能仍然无法完成。有几种方法可以处理这种情况。您可以编写一个自定义方法来处理结构并输出扁平化数据,或者使用库来处理转换。我过去使用过的一种方法是使用JOLT库(json到json转换)来预处理JSON,创建一个临时文档并解析它。请参阅此答案中的详细信息-从spring-boot控制器以CSV文件的形式返回JSON响应