从URL获取JSON信息,然后将JSON并组织到CSV文件中

时间:2019-07-02 01:06:47

标签: java json csv url

我需要从API获取JSON信息,然后使用其组织信息填充excel文件(通过CSV)。令我感到困惑的部分是将数据整理到excel(CSV)文件中,而json只在一行上打印。我可以举个例子吗?我很困扰。

我已经弄清楚了如何从api接收JSON数据并创建csv文件,但是json数据只打印一行。

我需要将文件组织为(名称,日期等)列,然后使用json数据中的相应信息填充这些列。

谢谢。

2 个答案:

答案 0 :(得分:0)

假设您的JSON如下所示:

{"foo":"bar", "baz":"qux"}

您需要将其转换为带有标题行的CSV:

foo,baz
bar,qux

执行此操作的典型方法如下:

  1. 调用API,获取JSON响应
  2. 将JSON反序列化为对象。这可以是POJO,或者如果您的数据很简单,则可以将其放入Map
  3. 将对象序列化为CSV并将其写入文件系统

jackson提供了一个出色的JSON处理API,因此要在Jackson上执行以下操作:

创建您的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);

当然,如果您用Google搜索一点,写出CSV的方法会更好。

答案 1 :(得分:-1)

您肯定从API中获得了一行json,因为最小化的json比要发送的格式化json便宜。

要从json中获取信息,您可以看一下json-pointer https://www.baeldung.com/json-pointer,它使您可以从其中获取特定信息。

检索所有信息后,必须使用选定的数据构造csv文件。