首页 > 其他分享 >fastjson JSONValidator 的使用记录

fastjson JSONValidator 的使用记录

时间:2023-10-17 16:33:34浏览次数:46  
标签:fastjson false JSONValidator 记录 json 格式 validate true

在api的对接过程中,对方api总是会返回一些意想不到的格式回来, 虽然你们已经约定好了使用json的方式返回 !!

 在调用一个api接口的时候结果就像薛定谔的猫 是一个不确定的形态.

 按照我之前的操作逻辑

1判断结果空

if (StringUtils.isEmpty(result)) {
    return "结果空";
}

2判断结果 json格式

if (!JSONValidator.from(result).validate()) {
    return "结果非json格式";
}

3在判断json结果中的 关键字段如 success = true

此处代码忽略...

 

这样看起来似乎没有问题,直到今天偶然看到某个 api接口 返回的结果为 false;

然后通过了 第二个验证

在进行

JSONObject.parseObject(send.toString(), XXX.class);

时抛出了异常,json格式反序列化异常

 

问题的重点  为什么 JSONValidator.from("false").validate() == true

问题的重点  为什么 JSONValidator.from("false").validate() == true

问题的重点  为什么 JSONValidator.from("false").validate() == true

!!!

 

事实上, 我我对JSONValidator.from("false").validate() 有误解,  我理解的这段代码的含义是 判断这个字符串是否是正确的json格式

 

而实际的意思是  判断这个字符串是否是json 的格式 或json的 values的 格式

 

啥意思呢  简单的理解就是 json 有6中数据类型

出自: rfc-editor.org/rfc/rfc8259.txt

符合以上类型的都可以校验通过

 

借用网上的截图

 

JSONValidator.from(result).validate() 这里的result 符合json格式或者 json的values的数据格式 都是会返回true的  以后使用的是时候要注意了!!!

 

 

分割线-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------分割线

那么问题来了, 我们应该如何校验一个字符串是否是可以正确序列化的字符串呢?

 

标签:fastjson,false,JSONValidator,记录,json,格式,validate,true
From: https://www.cnblogs.com/loveCrane/p/17769822.html

相关文章

  • 记录TritonServer部署多模型到多GPU踩坑 | 京东云技术团队
    一、问题是怎么发现的部署chatglm2和llama2到一个4*V100的GPU机器上遇到问题config.pbtxt中设置模型分别在指定gpu上部署实例配置不生效如以下配置为在gpu0上部署本模型,部署count=1个实例,在gpu1上部署本模型,部署count=2个实例instance_group[{count:1kind:KIND_GPU......
  • Unity3D学习记录01:URP渲染管线以及3D游戏场景设置
    以下内容所使用的版本均为Unity2022.3先在Window->PackageManager->UnityRegistry里面搜索添加UniversalRP Unity中,创建渲染管线的方式为Asset文件夹下右键Create->Readering->URPAsset(withUniversalAsset)会创建以下两个Pipeline: 接着在图中的设置里添加这两个渲......
  • 岩土工程监测利器:多通道振弦数据记录仪应用隧道监测
    岩土工程监测利器:多通道振弦数据记录仪应用隧道监测岩土工程监测在现代工程建设中的作用越来越重要。为了确保工程质量和工程安全,需要对工程过程中的各种参数进行实时监测和记录。而多通道振弦数据记录仪则是一种重要的监测工具,特别适用于隧道监测。 多通道振弦数据记录仪是......
  • 记录TritonServer部署多模型到多GPU踩坑 | 京东云技术团队
    一、问题是怎么发现的部署chatglm2和llama2到一个4*V100的GPU机器上遇到问题config.pbtxt中设置模型分别在指定gpu上部署实例配置不生效如以下配置为在gpu0上部署本模型,部署count=1个实例,在gpu1上部署本模型,部署count=2个实例instance\_group\[{count:1kind:KIND\_GPUgpu......
  • 记录TritonServer部署多模型到多GPU踩坑 | 京东云技术团队
    一、问题是怎么发现的部署chatglm2和llama2到一个4*V100的GPU机器上遇到问题config.pbtxt中设置模型分别在指定gpu上部署实例配置不生效如以下配置为在gpu0上部署本模型,部署count=1个实例,在gpu1上部署本模型,部署count=2个实例instance\_group\[{count:1kind:KIND\_GPUgpu......
  • C2000 系列DSP使用Syscfg配置CLB模块记录
    1.1、SysConfig配置1、在工程下新建一个syscfg文件。注意文件的后缀名是.syscfg,命名任意。这时候会弹出一个弹窗,点击yes将SysConfig添加到该工程的toolchain。2、可以看到工程下多了一个GeneratedSource,并且打开工程属性,Build下也新加了SysConfig......
  • 某985证书站挖掘记录
    0x1.前言本文章仅用于信息安全防御技术分享,因用于其他用途而产生不良后果,作者不承担任何法律责任,请严格遵循中华人民共和国相关法律法规,禁止做一切违法犯罪行为。文中涉及漏洞均以提交至教育漏洞平台,现已修复。0x2.背景本人从9月10号开始挖掘教育网的漏洞,截至到10月10号已经......
  • 这篇记录一下C#和java中的http request的测试
    1.在c#中,测试http的,一般做一个mock的httpContext,然后里面的request和response都使用mock的,这样设置好后,就可以测试controller2.在java中,因为是httpservelet这些,所以实例化测试创建mock的httprequest这些https://www.baeldung.com/java-httpservletrequest-mock@Testvoid......
  • 日常记录--2023-10月16日--周一
    日程:今天只有上午有课,7点起床,吃了个早饭去上课,早上第一节数据结构,学习了队列,还讲了相关应用。中午午休一个小时,下午起来干了点别的,完善了之前的代码,晚上7-9点听了下代码随想路,学了会javaweb。学了什么:可恶的Javaweb,复习了数据结构。PS:不想学习,想要成为月饼盒;......
  • CSP模拟赛记录
    CSP模拟赛记录落下了好多慢慢补qwq2023.10.16A.魔力子串直接vector扔map里面没什么好说的警示后人:能用map就不要哈希B.吃树结论题当正好存在\(\frac{n}{k}\)个节点的子树大小为\(k\)的倍数时,\(k\)作为块的大小是合法的对于每种合法的块的大小,有且仅有......