首页 > 解决方案 > 如何解决 MyObject 中解析 Json 的问题?

问题描述

嗨,我的代码有一个大问题。我实现了一个用于在 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;
    }
}

标签: javajsonseleniumgson

解决方案


您的代码完美运行您需要更改代码中的最后一条指令,因为您在控制台中显示列表中的第一个元素

 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}]

推荐阅读