gpt4 book ai didi

java - 尝试反序列化对象时出错

转载 作者:行者123 更新时间:2023-12-01 12:45:31 25 4
gpt4 key购买 nike

我有这个 json:{"backwards":false,"idFrom":-1}

还有一个方法:

private Object[] instantiateFromRequest(Class[] paramTypes) throws IOException {
Object[] params = new Object[paramTypes.length];
if (paramTypes.length == 0) {
return params;
}

HttpServletRequest req = RequestSupplier.request();
InputStream is = req.getInputStream();
ObjectMapper m = new ObjectMapper();
if (paramTypes.length == 1) {
params[0] = m.readValue(is, paramTypes[0]);
} else {
String[] vals = m.readValue(is, String[].class);//trouble here
for (int i = 0; i < paramTypes.length; i++) {
if (paramTypes[i] == String.class) {
params[i] = vals[i];
} else {
params[i] = m.readValue(vals[i], paramTypes[i]);
}

}
}
return params;
}

(params[0]long,params params[1]boolean)
它应该返回 json 中的对象。麻烦就在标记线上。我得到一个异常(exception):无法从 START_OBJECT token 中反序列化 java.lang.String[] 实例我不知道为什么会发生这种情况。有人可以帮助我吗?

编辑:实际上,我似乎正在尝试获取一个数组,而不是这里的对象。将 JSON 更改为:[-1, false] 解决了我的问题

最佳答案

问题是您正在尝试通过字符串数组进行序列化,其中 json 中有另一个泛型类型对象。

尝试以下操作:

String val = m.readValue(is, String.class);

或:

ContentBean myContentBean = m.readValue(is, ContentBean.class);

其中 ContentBean 有两个属性:

  1. 向后
  2. idFrom

及其 getter 和 setter。

它应该可以完美地工作。

编辑:

您确定:

params[1] 为 long,params params[0] 为 boolean

因为对我来说似乎恰恰相反。 。 。

关于java - 尝试反序列化对象时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24738579/

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