java - JsonParseException:意外字符('{'(代码 123)):期待双引号开始
问题描述
Json 字符串
String field="[{"
+ "{\"key\":\"cloud\",\"value\":[\"AWS\"],\"search\":\"EQUALITY\"}"
+ ",{\"key\":\"region\",\"value\":[\"US EAST1\"],\"search\":\"EQUALITY\"}"
+ "}]";
导致错误的代码:
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
ObjectMapper mapper = new ObjectMapper();
mapper.readValue(field, ComputeResourceInputVO[].class)
相关类
public class ComputeResourceInputVO implements Serializable {
public ComputeResourceInputField[] computeResourceInputField;
}
class ComputeResourceInputField implements Serializable {
public String[] value;
public String search;
public String key;
}
错误:
引起:com.fasterxml.jackson.core.JsonParseException:意外字符('{'(代码 123)):期待双引号开始字段名称
解决方案
有一个额外的开放大括号:
String field="[{" // 1st open curly
// second line starts with another curly
+ "{\"key\":\"cloud\",\"value\":[\"AWS\"],\"search\":\"EQUALITY\"}"
+ ...
将第一行更改为:
String field="[" // extra open curly removed
并删除 json 中的最后一个结束卷曲。
推荐阅读
- excel - 使用do until循环遍历日期列表时如何跳过丢失的日期
- node.js - 下载图像并将其转换为 base64 会导致数据损坏
- ssh - 如何解决ansible中“无法通过ssh连接到主机”的问题
- excel - 循环遍历多个工作簿并根据代码排列数据
- airflow - 如何在 Airflow 中将 DAG 所有者与 Google OAuth 用户关联
- docker - docker-compose up -d --build "$@" 构建名称错误的图像
- azure - 从 Blazor 客户端中长时间运行的后台任务中释放 UI 的推荐方法是什么
- javascript - 调用服务打开一个对话框取决于 setTimeout
- html5-video - 如何隐藏 HTML5 视频标签中的黑色加载微调器?
- pyspark - Aws Glue Etl - 没有名为 dynamicframe 的模块