自定义格式的JSON格式的Java转换对象,不符合Java的标准格式的配置文件。
Dependências
一名家庭成员格森,可以进行Java JSON转换。
Código
Vamos criar um arquivo chamadoconfig.jsonna noiz do nosso projeto,请执行JSON queserálido。
{
"nome": "paulo",
"idade": 31,
"lista": ["Item 1", "Item 2", "Item 3"],
"cidade":{
"nome":"Rio de janeiro",
"estado": "RJ"
}
}
Vamos criar um arquivoCidade.javapara encapsular esse objeto。 Servirápara demonstrar是一个通过trabalharmos com objetos dentro do arquivo转换的JSON。
public class Cidade {
private String nome;
private String estado;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEstado() {
return estado;
}
public void setEstado(String estado) {
this.estado = estado;
}
}
E vamos criartambémum arquivo配置文件,负责人负责人ar arquivo。
public class Config {
private String nome;
private int idade;
private List<String> lista;
private Cidade cidade;
public Config() {
cidade = new Cidade();
lista = new ArrayList<>();
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getIdade() {
return idade;
}
public void setIdade(int idade) {
this.idade = idade;
}
public List<String> getLista() {
return lista;
}
public void setLista(List<String> lista) {
this.lista = lista;
}
public Cidade getCidade() {
return cidade;
}
public void setCidade(Cidade cidade) {
this.cidade = cidade;
}
}
波尔菲姆主要,vamos realizar a leitura do arquivo e guardar em uma String o seuconteúdo:
String json
= String.join(" ",
Files.readAllLines(
Paths.get("./config.json"),
StandardCharsets.UTF_8)
);
塞古达(Logo em seguida)徽标设定档,usando ométodo来自杰森做格森:
Config config = new Gson().fromJson(json, Config.class);
经典补习班:
public class Main {
public static void main(String[] args) throws IOException {
String json
= String.join(" ",
Files.readAllLines(
Paths.get("./config.json"),
StandardCharsets.UTF_8)
);
Config config = new Gson().fromJson(json, Config.class);
System.out.println(config.getNome());
System.out.println(config.getIdade());
System.out.println(config.getLista());
System.out.println("");
System.out.println(config.getCidade().getNome());
System.out.println(config.getCidade().getEstado());
}
}
Saídadaexecuçãodessaaplicação:
paulo
31
[Item 1, Item 2, Item 3]
Rio de janeiro
RJ
[]的