gpt4 book ai didi

java - 构造函数 JsonPrimitive(Object) 不可见

转载 作者:行者123 更新时间:2023-12-01 11:28:57 24 4
gpt4 key购买 nike

我试图将 arrayList 包装为 Json 字符串,以使用 Gson 库将其发送到服务器,但我收到此错误构造函数 JsonPrimitive(Object) 不可见.

我该如何解决这个问题?

感谢任何帮助。

SelectedRoute 类:

public class SelectedRoute {

ArrayList<Integer> selected;

public SelectedRoute(ArrayList<Integer> selected) {
this.selected = selected;
}

public ArrayList<Integer> getSelected() {
return selected;
}

public void setSelected(ArrayList<Integer> selected) {
this.selected = selected;
}


}

SelectedRouteSerializer 类:

   public class SelectedRouteSerializer implements JsonSerializer<SelectedRoute>{

@Override
public JsonElement serialize(SelectedRoute select, Type arg1,
JsonSerializationContext arg2) {
JsonObject result = new JsonObject();
//The error is here.
result.add("selected", new JsonPrimitive(select.getSelected()));


return result;
}


}

最佳答案

一个JSON primitive是以下任意一个

string
number
object
array
true
false
null

这些用 Gson 的 JsonPrimitve 表示,有四个构造函数:一个用于 Boolean,一个用于 String,一个用于 Number,一个用于 Character(一个字符 String)。 JsonPrimitive 有一个包私有(private)构造函数,它可以接受您的 ArrayList 值,但由于是包私有(private)的,您的代码无法访问它。

Java ArrayList 无法表示为 JSON 原语。它应该是一个 JSON 数组。

<小时/>

您现在已经编辑了您的问题,但这里有一个直接构建 JsonObject 的示例

ArrayList<Integer> arrayList = new ArrayList<>(Arrays.asList(1,2,3));
JsonObject jsonObject = new JsonObject();
JsonArray jsonArray = new JsonArray();
for (Integer value : arrayList) {
jsonArray.add(new JsonPrimitive(value));
}
jsonObject.add("selected", jsonArray);

关于java - 构造函数 JsonPrimitive(Object) 不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30583576/

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