![](/img/trans.png)
[英]How do I Convert JSON Array into ArrayList<ClassType> in Java?
[英]How do I convert a java class that has an arraylist to json
我使用Gson庫,我有一個類,它有一個arraylist作為其成員之一。
我向這個arraylist添加了不同的對象類型,然后我將它序列化為json
public class MethodParameter {
private String className;
private String methodName;
private ArrayList parameters;
public MethodParameter(){
parameters = new ArrayList();
}
public String getClassName(){
return className;
}
public String getMethodName(){
return methodName;
}
public List<Object> getParameters(){
return parameters;
}
public void setClassName(String value){
className = value;
}
public void setMethodName(String value){
methodName = value;
}
public void setParameters(ArrayList value){
parameters = value;
}
}
然后我轉換如下:
Gson gson = new Gson();
java.lang.reflect.Type type = new TypeToken<MethodParameter>() {}.getType();
String json = gson.toJson(mp, type);
但我得到的是:
{"className":"MainClass","methodName":"Test","parameters":[]}
參數是一個arraylist,我添加了不同類型的類。 如何讓它創建正確的json結果?
我嘗試了你的代碼和2件事,
MethodParameter.parameters
定義為列表(只是最佳實踐) MethodParameter
對象中操作列表的方式... 無論如何這里是一個片段工作,你想要它做:
public static void main(String[] args) {
MethodParameter mp = new MethodParameter();
mp.setClassName(String.class.getCanonicalName());
mp.setMethodName("replace");
List<String> parametersList = new ArrayList<String>();
parametersList.add("target");
parametersList.add("sequence");
mp.setParameters(parametersList);
//
Gson gson = new Gson();
java.lang.reflect.Type type = new TypeToken<MethodParameter>() {
}.getType();
String json = gson.toJson(mp, type);
System.out.println(json);
}
但在我看來,你可以通過這樣做來生成json:
System.out.println(gson.toJson(mp, MethodParameter.class));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.