将 JSON 文件转换为字符串

lar*_*ars 5 java parsing json

我对 Java 很陌生,但有一个我不知道如何解决的问题。我阅读了一些教程,发布了问题等,但我仍然无法理解如何转移解决我的问题的知识。

问题来了。

我想在一个地方读取多个 json 文件并将数据转换为字符串。我能够读取 json 中的一个数据条目,但不能读取更多。:-|

文件数据如下:

{
    "Header":{
        "Liste1": {
            "ID": "12345",
            "Name" : "customerlist",
            "Company List": [
                "Company": "c1",
                "Company": "c2",
                "Company": "c3"
            ]
        },
        "Liste2":{
            "ID": "12346",
            "Name" : "vendorlist",
            "Company List": [
                "Company": "c4",
                "Company": "c5",
                "Company": "c6"
            ]
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我使用的代码主要:

package testpaket;

import com.google.gson.Gson;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;

public class test6 {

    public static void main(String[] args) {

        Gson gson = new Gson();

        try (Reader reader = new FileReader("test.json")) {

            // Convert JSON to Java Object
            Header header = gson.fromJson(reader, Header.class);
            System.out.println(header);

            // Convert JSON to JsonElement, and later to String
            /*JsonElement json = gson.fromJson(reader, JsonElement.class);
            String jsonInString = gson.toJson(json);
            System.out.println(jsonInString);*/



        } catch (IOException e) {
            e.printStackTrace();
        }

    }

}
Run Code Online (Sandbox Code Playgroud)

我的列表类。

package testpaket;

import java.util.List;

public class Lists {

    private String List;
    private int ID;
    private String Name;
    private List<String> companyList;

}
Run Code Online (Sandbox Code Playgroud)

我的标题类。

package testpaket;

import java.util.Map;

public class Header {

        String name;
        String list;
        int id;
        String header1;


        private Map<String, Lists> header;


        //getters&setters
        public String getHeader() { 
              return this.header1; 
        }
        public void setHeader(String header) { 
            this.header1 = header1; 
        }
        public String getList() { 
              return this.list; 
        }
        public void setList(String list) { 
            this.list = list; 
        }
        public String getName() { 
              return this.name; 
        }
        public void setName(String name) { 
            this.name = name; 
        }
        public int getID() { 
              return this.id; 
        }
        public void setID(int id) { 
            this.id = id; 
        }
}
Run Code Online (Sandbox Code Playgroud)

任何这些甚至有意义吗?对不起,但我真的尝试转移到目前为止我所拥有的知识。谁能帮助我并告诉我如何解决它?

小智 6

如果要将 JSON 文件转换为字符串,则无需将文件转换为 Java 对象,然后再转换为字符串。使用 apache commons-io库,您只需1 行即可完成此操作。

String exampleRequest = FileUtils.readFileToString(new File("exampleJsonRequest.json"), StandardCharsets.UTF_8);
Run Code Online (Sandbox Code Playgroud)