String result = (String) JSONObject.parseObject(responseBody, Map.class).get("data"),"data"值为true时怎么取不到值
时间: 2023-12-06 10:44:57 浏览: 63
如果data" 的值为 true,那么它本身就是一个 boolean 类型的值,而不是一个 Map 类型的值,因此在使用 `Map.class` 解析时会出现类型转换异常。你可以直接将返回值解析为一个 JSONObject 对象,然后通过 `getBoolean` 方法获取 "data" 的值,示例如下:
```
JSONObject jsonObject = JSONObject.parseObject(responseBody);
boolean data = jsonObject.getBoolean("data");
```
相关问题
JSONObject jsonObject = JSONObject.parseObject(Arrays.toString(bytes));报错 JSONObject jsonObject = JSONObject.parseObject(Arrays.toString(bytes));
`JSONObject.parseObject()`方法需要传入一个JSON字符串作为参数,但是`Arrays.toString()`方法是将一个数组转换成一个字符串,并不是将一个字节数组转换成一个JSON字符串。
如果您已经确定您所接收到的字节数组是一个JSON字符串的字节数组,可以直接将其转换为字符串,然后再使用`JSONObject.parseObject()`方法进行解析,例如:
```java
String jsonString = new String(bytes, StandardCharsets.UTF_8);
JSONObject jsonObject = JSONObject.parseObject(jsonString);
```
其中,`bytes`是您所接收到的字节数组,`StandardCharsets.UTF_8`是指定字符串编码格式的常量。通过将字节数组转换为字符串,再使用`JSONObject.parseObject()`方法解析该字符串,就可以得到一个`JSONObject`对象。
怎样修改代码,去掉颜色的识别率private static void exec(File f, PlateFileEntity entity) { //这里用api的准确结果 String s = PlateUtil.licensePlate(f.getAbsolutePath()); JSONObject jsonObject = JSONObject.parseObject(s); String words_result = JSON.toJSONString(jsonObject.get("words_result")); System.out.println(words_result); JSONObject object = JSONObject.parseObject(words_result); Object number = object.get("number"); Object color = object.get("color"); entity.setRecoPlate(number.toString()); entity.setRecoColor(color.toString()); }
要去掉颜色的识别率,需要修改代码中的以下部分:
将代码中的`Object color = object.get("color");`改为`Object color = null;`,即不再获取颜色信息。
修改后的代码如下:
private static void exec(File f, PlateFileEntity entity) {
//这里用api的准确结果
String s = PlateUtil.licensePlate(f.getAbsolutePath());
JSONObject jsonObject = JSONObject.parseObject(s);
String words_result = JSON.toJSONString(jsonObject.get("words_result"));
System.out.println(words_result);
JSONObject object = JSONObject.parseObject(words_result);
Object number = object.get("number");
Object color = null;
entity.setRecoPlate(number.toString());
entity.setRecoColor(color.toString());
}
阅读全文