如何将Java数据放入json文件?

时间:2019-06-28 10:37:12

标签: java json

我正在做一个学校项目(创建总线网络),他们要求我将数据(总线号等)放入json文件中。

请问你们有一个简单的例子吗?我正在使用eclipse,并且尝试使用org.json.simple.JSONObject;库,但是它不起作用。

私下

4 个答案:

答案 0 :(得分:0)

Jackson是用于用Java读写JSON的事实上的标准库。它也可以用于读/写XML,YAML和其他格式。

网络上有很多关于如何使用Jackson的教程,例如http://www.studytrails.com/java/json/jackson-create-json/

一般用法:

  • 创建/配置ObjectMapper
  • 创建您的数据bean,并可以选择使用Jackson注释对其进行注释,以对序列化进行微调
  • 使用对象映射器对bean进行序列化/反序列化。

复杂的示例还显示了如何与其他格式进行序列化以及如何使用自定义序列化: https://github.com/pwalser75/json-xml-yaml-test

答案 1 :(得分:0)

您可以看看Java – Write to FileHow do I create a file and write to it in Java?

使用POJO:

public class Data {

    private final String name;
    private final String id;

    public Data(final String name, final String id) {
        this.name = name;
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public String getId() {
        return id;
    }
}

此代码使用Jackson和ObjectMapper

ObjectMapper objectMapper = new ObjectMapper();
Data data = new Data("abc", "123");
String jsonData = objectMapper.writeValueAsString(data);
Path path = Paths.get("myFile");
Files.write(path, jsonData.getBytes(StandardCharsets.UTF_8));

答案 2 :(得分:0)

如果您参考此处发布的示例,则可以看到如何处理列表: How to construct JSON data in Java

您也可以只将ArrayList作为值而不是字符串数组。杰克逊将为您完成其余的工作。

答案 3 :(得分:0)

这是file1.txt的内容:

{
"Name": "crunchify.com",
"Author": "App Shah",
"Company List": [
    "Compnay: eBay",
    "Compnay: Paypal",
    "Compnay: Google"
]
}

Java代码:

    package com.crunchify.tutorials;

    import java.io.FileWriter;
    import java.io.IOException;

    import org.json.simple.JSONArray;
    import org.json.simple.JSONObject;



    public class CrunchifyJSONFileWrite {

    @SuppressWarnings("unchecked")
    public static void main(String[] args) throws IOException {

        JSONObject obj = new JSONObject();
        obj.put("Name", "crunchify.com");
        obj.put("Author", "App Shah");

        JSONArray company = new JSONArray();
        company.add("Compnay: eBay");
        company.add("Compnay: Paypal");
        company.add("Compnay: Google");
        obj.put("Company List", company);

        // try-with-resources statement based on post comment below :)
        try (FileWriter file = new FileWriter("/Users/<username>/Documents/file1.txt")) {
            file.write(obj.toJSONString());
            System.out.println("Successfully Copied JSON Object to File...");
            System.out.println("\nJSON Object: " + obj);
        }
    }
}