问题描述
我从一个 API 中得到一个分数,它是一个列表列表。
回复
"score":"[[3289780,0.873],[25046762,0.3],[18124806,0.259],[25587374,0.047],[5725643,0.045],[23887210,0.03],[26185297,0.005]]"
但是当分数不存在时,它会返回分数的空列表。
空时响应
"score":"\"\""
or
"score":""
我使用 json 解析器进行解析,在第二种情况下,score = "",我什至可以检查空字符串而不解析它。 但是在“分数”的情况下:“”“”我无法进行此检查。
我希望我的解析器被通用化
解析代码
List<List<Object>> scores = new ArrayList<>();
scores = JsonUtil.deserialize(scoreResponse,scores.getClass());
scoreResponse 是一个字符串,其中包含来自 score 的值。
JsonUtils 反序列化代码
public static <T> T deserialize(String json,Class<T> clazz) {
try {
return objectMapper.readValue(json,clazz);
} catch (IOException ex) {
throw new IllegalArgumentException("Cannot deserialize given object",ex);
}
}
任何帮助将不胜感激。
解决方法
好吧,我会尽力解决我能解决的问题。 在以下情况下:
score= "\"\""
在该实例中,似乎“用于表示”(引号)字符。 所以在你的支票中你可以说:
if (score == "\"\"") {return null;}
例如。
试试看,希望有帮助