关于requestBody、Gson,JSONObject,ObjectMapper。

自己从无到有构建一个项目,才发现,事事亲历亲力亲为。有那么多的细节要去理解。
查了很多东西。这里记录以下。方便自己以后查阅,而不是在到处找。

前后台对接的时候,我就在想前后台数据怎么对接上的?
参考了:https://blog.csdn.net/justry_deng/article/details/80972817
直接上自己测试的例子:
1,直接接收字符串
在这里插入图片描述
postman测试结果:

在这里插入图片描述
2,接收对象。(必须保证传传进来的和实体类属性保持一样,就可以自动对应过去)

@RequestMapping("/testJson")
@ResponseBody
public String testJson(@RequestBody(required = false) TestUser user) {
    return user.getTestUserName() + user.getTestUserSex();
}

在这里插入图片描述
postman测试结果:

在这里插入图片描述
3,@RequestBody与@RequestParam()(使用必须加key值)同时使用:
在这里插入图片描述
postman测试结果:
在这里插入图片描述
在复杂一点的使用(数组):

@RequestMapping("/testJson")
@ResponseBody
public String testJson(@RequestBody(required = false) TestUser user, @RequestParam("tests") List<String> tests) {
    return user.getTestUserName() + user.getTestUserSex() + tests;
}

在这里插入图片描述
前台数据接过来之前的处理:(拼成了字符串)
在这里插入图片描述

Gson的理解:
参考了: https://blog.csdn.net/kakaxi1o1/article/details/79643399
关于Gson,JSONObject,不详细说,前面已经介绍过ObjectMapper,其余两者作用类似,一个是谷歌的,一个是阿里的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将GsonJsonObject转换成Map,可以使用Gson的自定义解析器来实现。你可以重写deserialize方法,将JsonElement解析成Map的形式。以下是一个示例代码: ```java public Map<String, Object> gsonToMap(String strJson) { Gson gson = new GsonBuilder() .registerTypeAdapter(new TypeToken<Map<String, Object>>(){}.getType(), new JsonDeserializer<Map<String, Object>>() { @Override public Map<String, Object> deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { Map<String, Object> map = new HashMap<>(); JsonObject jsonObject = json.getAsJsonObject(); Set<Map.Entry<String, JsonElement>> entrySet = jsonObject.entrySet(); for (Map.Entry<String, JsonElement> entry : entrySet) { map.put(entry.getKey(), entry.getValue()); } return map; } }).create(); return gson.fromJson(strJson, new TypeToken<Map<String, Object>>() {}.getType()); } ``` 在这个示例中,使用registerTypeAdapter方法注册了一个自定义的JsonDeserializer来解析Map。在deserialize方法中,我们将JsonElement解析成Map的形式,并将其返回。然后,使用gson.fromJson方法将字符串解析成Map对象。 这样,你就可以将GsonJsonObject转换成Map了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Gson将json字符串转map导致int型被转换成double的采坑之旅](https://blog.csdn.net/weixin_34326179/article/details/91362141)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值