gpt4 book ai didi

java - 如何将具有 arraylist 的 java 类转换为 json

转载 作者:太空宇宙 更新时间:2023-11-04 12:39:32 25 4
gpt4 key购买 nike

我使用 Gson 库,并且有一个类,该类的成员之一是数组列表。
我向此数组列表添加不同的对象类型,然后将其序列化为 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":"测试","parameters":[]}

Parameters 是一个数组列表,我向其中添加不同类型的类。如何让它创建正确的 json 结果?

最佳答案

我尝试了你的代码和两件事,

  1. MethodParameter.parameters 定义为列表(只是最佳实践)
  2. 问题可能出在您操作 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));

关于java - 如何将具有 arraylist 的 java 类转换为 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36959998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com