这个问题被问了很多次,但我找不到解决问题的答案。
我试图将嵌套的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与点符号和在一个通用的方式?
编辑
JSON与Jackson的反序列化:
ObjectMapper mapper=new ObjectMapper();
JsonNode jsonNode=mapper.readValue(new File("C:\\...\\...\...\\test.json"), JsonNode.class);
伊斯梅尔
评论不是一个方便发布长篇大论答案的地方,所以我在这里发布我的答案。
>
分析您的JSON以及您可以从数据库中获得的所有可能的JSON结构。它应该是数量有限的JSON表单。
正如您分析了JSON结构后构建的类/类层次结构一样,它充分反映了这种结构。
您可以选择使用JSON序列化器/反序列化器库,将JSON反序列化到java对象。
使用StringBuffer/StringBuilder类,迭代对象信息,构建逗号分隔(或制表符分隔)的字符串。
将在前一阶段生成的字符串写入文件。
就这样。
在Java中将JSON转换为XLS/CSV符合您的要求。
基本上,你需要使用org。json。CDL将JSON格式转换为CSV格式
就像你说的:
JSON结构是任意的,可以是任何东西,嵌套或不嵌套。
JSON到CSV的转换不能通用化,因为它因用户而异,还取决于特定的需求。
但仍然有一个库json2flat试图实现它。但它可能与用户的要求不同。不过还是值得一试。
例如,对于上面给出的JSON:
{
"_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
1,"Aurelia Menendez","exam",60.06045071030959
1,"Aurelia Menendez","quiz",52.79790691903873
1,"Aurelia Menendez","homework",71.76133439165544
问题内容: 有人可以提供一个示例或参考,该示例或参考提供一种使用Jackson库将嵌套JAVA对象转换为JSON输出的方法的方法。我没有转换平面JAVA对象的问题。但是,JSON库显示嵌套的对象名称和类型,而不是其子对象。我几乎可以利用此处提供的相同代码http://www.mkyong.com/java/jackson-2-convert- java-object-to-from-json/ 。
问题内容: 我是Python和Pandas的新手。我正在尝试将Pandas Dataframe转换为嵌套的JSON。函数.to_json()不能为我的目标提供足够的灵活性。 以下是数据框的一些数据点(在csv中,以逗号分隔): 有很多重复的信息,我想要一个这样的JSON: 我怎样才能做到这一点? 编辑: 再现数据帧的代码: 问题答案: 更新: 结果(格式化): 旧答案: 你可以用它做的,和方法:
有人能用Java代码将下面的JSON转换为Spark DataFrame吗… 注意:它不是文件 逻辑:听kafka主题T1,读取RDD中的每个记录,并应用附加逻辑将结果数据转换为Json对象,并将其写入kafka中的另一主题T2。
输入 json : 预期输出: 我想有一个颠簸转换,它可以嵌套很少的田地。
问题内容: 我正在尝试使用gson将返回的JSON转换为某种数据结构,以便提取有用的数据。 例如: http://search.twitter.com/search.json?q=test&rpp=1 返回值: 最终,我希望能够输出带有发件人名称和推文日期/时间的推文列表。 我已经阅读了gson文档,但是说实话,这让我头疼不已-我那里有很多新概念。 我是否需要定义一个完全映射到JSON结构的类,以
我有两个嵌套的case类: 当然,解决方案应该是泛型的,并且适用于任何case类。 注意:这个讨论很好地回答了如何将单个case类映射到映射。但我无法将其用于嵌套的case类。相反,我得到了: