Как решить проблему с парсингом Json в MyObject? - PullRequest
0 голосов
/ 09 апреля 2020

Привет, у меня большая проблема с моим кодом. Я реализую личный класс для сериализации и десериализации объектов в Json, и для этого я использую GSON, но. Это мой класс.

public class JsonUtil<T> {
private Gson gson=new Gson();

public JsonUtil(){}
public List<T> getJsonsFile(File file) throws IOException{
    List<T> list=null;
    try(Reader reader=new FileReader(file.getPath())) {
         list= gson.fromJson(reader, new TypeToken<Collection<T>>(){}.getType());

        return list;
    }
}
public void writeJsonInFile(File file,List<T> list) throws IOException{
    try(Writer writer=new FileWriter(file.getPath())){
        gson.toJson(list, writer);
    }
}

И это мой основной

public class Prova{
public String id;
public Prova(String a){
    id=a;

}
public static void main(String[] args){
final File file=new File("MyFollowers copia.json");
JsonUtil<Prova> jsonUtil=new JsonUtil<>();
List<Prova> a=null;

try{
    a=jsonUtil.getJsonsFile(file);
}catch (IOException e){}
System.out.println(a.get(0));

}

Мой пример Json

[{"id":"alexandra04.___"},{"id":"riky_vicini"},{"id":"martatofanarii"},{"id":"about._mary"}]

Теперь, когда я запускаю свой код, я получить этот вывод

{id=alexandra04.___}

Я ищу эту проблему, но я не понимаю, как решить эту проблему

Я хочу, чтобы мой объект перечислил со всеми объектами Prova, и я захочу использовать это

for(Prova prova:a){System.out.println(a.id);} 

Привет, я решил с этим

public <T> List<T> getJsonsFile(File file,Class<T> cls) throws IOException{
    List<T> list=new ArrayList<T>();
    try(Reader reader=new FileReader(file.getPath())) {
        JsonArray arry=new JsonParser().parse(reader).getAsJsonArray();
        for(JsonElement jsonElement:arry){
            list.add(gson.fromJson(jsonElement,cls));
        }
    return list;
        //return list;
    }
}

1 Ответ

1 голос
/ 09 апреля 2020

ваш код работает отлично, вам нужно изменить последнюю инструкцию в вашем коде, потому что вы видите в консоли первый элемент в списке

 System.out.println(a.get(0)); // change this instruction by this 
 System.out.println(a);   // show result is [{id=alexandra04.___}, {id=riky_vicini}, {id=martatofanarii}, {id=about._mary}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...