【发布时间】:2019-08-18 14:56:13
【问题描述】:
我需要将 JSON 响应转换为 csv 文件。我能够从这里成功使用 Tim Yates 的优秀代码:Groovy code to convert json to CSV file
我现在还需要在 csv 中包含 JSON 的嵌套子图。地图和子地图的关系是1:1。
我无法为收集语句获取正确的语法,该语句将检索已解析的映射和子映射键/值。
示例 JSON
{items=
[
{
created_at=2019-03-27
, entity_id=1
, extension_attributes=[]
},
{
created_at=2019-03-27
, entity_id=2
, extension_attributes= { employee_id=Emp1, employee_type=CSR}//nested submap
}
]}
时髦
import groovy.json.*
def data = new JsonSlurper().parseText( json ); //"json" is from GET request
def columns = ["created_at","entity_id","employee_id","employee_type"]
def encode = { e -> e ? /"$e"/ : "$e"}
requestFile.append( columns.collect { c -> encode( c ) }.join( ',' ) + '\n');
requestFile.append( data.items.collect { row ->columns.collect { colName -> encode( row[ colName ] ).replaceAll("null","") }.join( ',' )}.join( '\n' ) );//unsure how to use data.items.collect to fetch submap
我想要么 1) 将 JSON 转换如下,以便轻松收集每个键/值:
...
{
created_at=2019-03-27
, entity_id=2
, employee_id=Emp1
, employee_type=CSR
}
...
或 2) 找出是否有办法使用 Groovy 的 collect 方法将地图/子地图检索为平面地图。
很遗憾,我不是专业的程序员,如有任何帮助,我们将不胜感激!
【问题讨论】: