JSON数据格式的问题
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/json
免费下载资源
·
新项目,前端老哥用的angela框架
后端方法上一定要加个@Responsebody注解才能连通..
加上后,发现我后端postman测试的时候老出错误:
首先出现错误是这样的:
"error": "Unsupported Media Type",
"exception": "org.springframework.web.HttpMediaTypeNotSupportedException",
"message": "Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported",
然后把请求的类型的header改成这样:
使用以下Json格式解决后
又出现了下面的错误:
Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Can not deserialize instance of com.****.****.****.**** out of START_ARRAY token; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of com..****.****.****.**** out of START_ARRAY token
at [Source: java.io.PushbackInputStream@1a7e14f1; line: 1, column: 1]
之前解决过一次..中间过了好长时间竟然忘了怎么解决的了..
好记性不如烂笔头..
解决后还是记下来..
方法1: 给相关的类添加无参构造方法; 不起作用
方法2: 使用ObjectMapper处理复杂类型
String cols="[{'id':'3'},{'id':'3'}]";
ObjectMapper mapper = new ObjectMapper();
JavaType javaType = mapper.getTypeFactory().constructParametricType(List.class, Bean.class);
//Map类型
mapper.getTypeFactory().constructParametricType(HashMap.class,String.class, Bean.class);
List<Bean> lst = (List<Bean>)mapper.readValue(cols, javaType);
-------------------------------------------------------------------
String jsonString="[{'id':'1'},{'id':'2'}]";
ObjectMapper mapper = new ObjectMapper();
List<Bean> beanList = mapper.readValue(jsonString, new TypeReference<List<Bean>>() {});
上次解决的时候用过, 没有解决我的问题, 证明问题不是出在这..
方法3: 更改入参的json格式
我之前在postman使用的json格式是:
--这个是json的数组格式
[{
"pageIndex":1,
"pageSize":6
}]
是不对的.. 参数并不是数组..
改成这样的:
{
"pageIndex":1,
"pageSize":6
}
所有问题都解决了...
GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e
4 个月前
8c391e04
6 个月前
更多推荐
已为社区贡献1条内容
所有评论(0)