Jsoniter Unmarshal类型错误的友好提示

文章目录

    • [1. 写在最前面](#1. 写在最前面)
    • [2. 野生库解决](#2. 野生库解决)
      • [2.1 解决](#2.1 解决)
    • [3. 官方库解决](#3. 官方库解决)
      • [3.1 解决](#3.1 解决)
    • [4. 碎碎念](#4. 碎碎念)

1. 写在最前面

解决: 优化 Json Unmarshal 的时候定义的数据类型,跟传入的类型不一致的问题。示例

注:代码示例 https://go.dev/play/p/7YsDSW2hAv1?v=goprev

问: 为什么不用 golang json 的官方库,提示会更友好?官方库提示,json: cannot unmarshal number into Go struct field Tom.address of type main.Address

答: 因为官方库在 unmarshal 的时候,无法区分大小写,比如

注:以上代码示例 https://go.dev/play/p/AKLSNXjMIpQ?v=goprev

2. 野生库解决

为了解决一个问题,引入了另一个问题,但是不要慌,作为野生 golang 的 json 官方库,肯定提供了一种解决上述问题的方式。

注:野生库 -> github.com/json-iterator/go

2.1 解决

使用 RegisterFieldDecoderFunc 函数定义特定的字段解码函数。解决的验证如下:

注:以上代码示例 https://go.dev/play/p/W1tdJd09PQv?v=goprev

3. 官方库解决

虽然官方库提示已经很友好,但是本着求真的精神,请教了一个 chatgpt 是否有更优的解法,果然 chatgpt 没有辜负我的期望。

3.1 解决

使用官方库提供的 json.UnmarshalTypeError 断言 json error 的类型,在出现 unmarshal 类型不匹配的时候,修改错误提示。

注:以上代码示例 https://go.dev/play/p/8jKRc9wKFxj?v=goprev

4. 碎碎念

今天真的上海最冷的一天,虽然已经过了冬天,最近这个天气真的很难理解!

  • 真心建议,千万不要看见别人发光,就觉得自己暗淡,他强任他强,清风拂山岗,生活中,人和人的节奏不一样,有人三分钟泡面,有人三小时煲汤,有人外卖已送达,你要的方式,就坚定走下去别胡思乱想每个花期都不一样,不必焦虑有人比你提前拥有,所以别搞得不堪重负样子,大胆的往前走你的光芒终将被照亮。

  • 女孩子应该一辈子都觉得自己很美丽,而非只是在风华正茂的时候觉得自己很美。

  • 只有你的敌人才希望你瘦弱,同为女性,我希望你跑得快,蹦得高。

相关推荐
rich_Chan.5 小时前
阿里云百炼联网搜索教程:web_search 工具开启方法、web_extractor 网页抓取与 json 检索轨迹
前端·阿里云·json
SEO_juper19 小时前
Node.js 重定向链检测工具:301 跳了几跳、有没有成环,一次看清
xml·开发语言·python·node.js·json·bash
代码丰20 小时前
跨系统传输大 JSON:直接压缩,还是把数据放进 Redis?
redis·后端·json
司曜珩1 天前
构建AI友好型网站:用JSON-LD给企业官网上“户口”的实战指南
人工智能·json
Jmyd01231 天前
智慧广交会常态化运营下,企业如何用3D展厅把展会流量变成365天询盘
json
aluluka2 天前
《elisp 每日一练》——Process Sentinel 与 json集成
json·emacs·lisp·elisp
紧跟先前的步伐4 天前
Go AI Agent 实战 11|请求结构、响应结构与 JSON 解析
人工智能·ai·golang·json
骑着蜗牛撵大象3274 天前
用 Codex 批量做数字人商品口播视频:从分镜 JSON 到成片校验的流水线
java·ffmpeg·json·音视频·数字人·视频·codex
外收内放4 天前
FastAPI猜字谜实战(3):把每一局存成JSON
开发语言·python·学习·json·fastapi
一只旭宝4 天前
JSON 简介
json