所有StackOverflow的答案都没有帮助我。根据它们和我搜索的所有其他地方,我的JSON看起来是正确的,看起来很好。
我无法在Java中加载我的JSON文件,我真的需要帮助。
这是我的JSON
{"evento":
{"descricao":"saf","finalizado":false,"id":1,"localEvento":"asufgb","nome":"Teste",
"convidados":
[{"acompanhante":null,"id":"28147",
"localHospedagem":"ATLANTE PLAZA","nome":"FooBar","nomeCracha":"FOO","observacoes":null,"participante":null,
"publico":"FROTISTAS"}
]}}
这是我的代码
JsonReader reader = new JsonReader(new InputStreamReader(new FileInputStream(filePath)));
JsonObject obj = parser.parse(reader).getAsJsonObject();
Evento evento = gson.fromJson(obj.get("evento"), Evento.class);
错误
Caused by: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING
at com.google.gson.internal.bind.JsonTreeReader.expect(JsonTreeReader.java:139)
任何人都可以告诉我,我做错了什么?
答案 0 :(得分:0)
我可能采取以下方法。
import java.io.FileReader;
import java.util.List;
import com.google.gson.Gson;
public class App
{
public static void main(String[] args) throws Exception
{
Evento evento = new Gson().fromJson(new FileReader("input.json"), EventoWrapper.class).evento;
System.out.println(evento.descricao);
}
}
class EventoWrapper
{
Evento evento;
}
class Evento
{
String descricao;
String finalizado;
int id;
String localEvento;
String nome;
List<Convidado> convidados;
}
class Convidado
{
String acompanhante;
int id;
String localHospedagem;
String nome;
String nomeCracha;
String observacoes;
String participante;
String publico;
}