如何解决 MyObject 中解析 Json 的问题?
How resolve Problem with Parsing Json in MyObject?
您好,我的代码有一个大问题。我实现了一个个人 class 用于序列化和反序列化 Json 中的对象,为此我使用 GSON 但是。
这是我的 class.
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.___}
我搜索了这个问题,但我不明白如何解决这个问题
我想要我的对象列表 a 和所有对象 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}]
您好,我的代码有一个大问题。我实现了一个个人 class 用于序列化和反序列化 Json 中的对象,为此我使用 GSON 但是。 这是我的 class.
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.___}
我搜索了这个问题,但我不明白如何解决这个问题
我想要我的对象列表 a 和所有对象 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}]