Java 从URL获取JSON信息,然后将JSON放入并组织到CSV文件中
我需要从API中获取JSON信息,然后(通过CSV)将其组织信息填充到excel文件中。让我困惑的是将数据组织到excel(CSV)文件中,json只在一行上打印。我能举个例子说明如何做到这一点吗?我很困惑 我已经知道如何从api接收JSON数据并创建csv文件,但是JSON数据打印在一行上 我需要将文件组织成列,如(名称、日期等),然后用json数据中的相应信息填充这些列Java 从URL获取JSON信息,然后将JSON放入并组织到CSV文件中,java,json,csv,url,Java,Json,Csv,Url,我需要从API中获取JSON信息,然后(通过CSV)将其组织信息填充到excel文件中。让我困惑的是将数据组织到excel(CSV)文件中,json只在一行上打印。我能举个例子说明如何做到这一点吗?我很困惑 我已经知道如何从api接收JSON数据并创建csv文件,但是JSON数据打印在一行上 我需要将文件组织成列,如(名称、日期等),然后用json数据中的相应信息填充这些列 谢谢。由于最小化的json比要发送的格式化json更便宜,因此您肯定从API获得了一行json 为了从json中获取信息,
谢谢。由于最小化的json比要发送的格式化json更便宜,因此您肯定从API获得了一行json 为了从json中获取信息,您可以查看json指针,它允许您从中获取特定信息
检索完所有信息后,您必须使用所选数据构建csv文件。假设您的JSON如下所示:
{"foo":"bar", "baz":"qux"}
您需要将其转换为此csv,并带有标题行:
foo,baz
bar,qux
执行此操作的典型方法如下所示:
映射中
{"foo":"bar", "baz":"qux"}
创建您的POJO:
public class MyBean {
@JsonProperty
private String foo
@JsonProperty
private String baz
}
将JSON反序列化到MyBean
类中:
ObjectMapper om = new ObjectMapper();
MyBean b = om.readValue(jsonText, MyBean.class)
现在您只需要输出CSV文本
String csv = "foo,baz\n" + b.getFoo() + "," + b.getBaz();
BufferedWriter writer = new BufferedWriter(new FileWriter(fileName));
writer.write(csv);
当然,如果你在谷歌上搜索一下,有更好的方法写出CSV。你需要将JSON转换成CSV格式。这是一个手动过程,您可以提取希望在每一行中表示的数据。也就是说,你的问题中没有代码。您尝试过什么?CSV文件在一行上表示所有数据的事实与JSON格式的廉价方式无关。您能解释一下POJO是什么意思吗?另外,如果我的JSON像{data:{name:{firstname middlename lastname}}}那样嵌套,我会怎么做?但是谢谢你告诉我jackson的事,为我指明了写的方向!POJO=普通的旧java对象。如果JSON结构是嵌套的,那么java对象也应该是嵌套的。因此,采用JSON格式,创建具有相同层次结构的简单java类。