java - 如何解决 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;
}
}
解决方案
您的代码完美运行您需要更改代码中的最后一条指令,因为您在控制台中显示列表中的第一个元素
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}]
推荐阅读
- python - POST 请求给出错误但我给出所有标题和表单数据
- c# - Autofac 的 `reloadOnChange` 不会重新加载配置?
- javascript - 是否有可能仅使用 JavaScript 来保护数据?
- javascript - 即使窗口/外部 div 发生变化,div 也总是相互匹配
- c# - 仅当滚动条位于底部时才添加文本时自动滚动 - c# winforms
- python - 在全局环境中安装软件包而不是在 Windows 上使用 virtualenv
- php - PHP file_get_contents 来自同一目录中的文件
- r - R Shiny:如何在没有任何选择输入的情况下连接 fileinput 和 ggplot?
- django - 当我们有 CLass Base dViews (CBV) 时,forms.py 文件和类 myform(): 在应用程序中有什么用?
- amazon-web-services - 如果将新更新推送到图像,docker-compose 会拉新图像还是使用缓存?