[解决问题]json过来的信息,少了一个Boolean的值,其他字段都解析正常,就是Boolean解析的值是null

java类是长这样的
在这里插入图片描述
然后idea自动生成get和set方法
在这里插入图片描述
解析的字段都有值,就是isHit这个布尔没有值是null
打印这个对象的toString方法
结果是:{faceId=‘90240’, repositoryId=‘null’, isHit=null, catchTime=‘2020-06-23 16:41:45’}
很奇怪为什么这个属性(字段)没有值呢?

百度搜索关键字:json boolean set get is
得到以下结果:
原因

  • 因为boolean值属性没有按照JavaBean规范进行命名。JavaBean规范这样说:如果一个属性是boolean值,假设名为property,则其setter方法应该是setProperty,其getter方法应该为isProperty。
  • 当我们对isTest这个boolean类型的属性使用Eclipse自动生成setter/getter方法时,其生成的getter方法时isTest,这样的话,fastjson就会以为这个属性是test,从而输出结果是test。
    解决
  • 方式1:规范boolean值命名,将isTest调整为test,这样其结果为{“test”:false,”url”:true}
  • 方式2:规范boolean值的getter方法,将isTest调整为isIsTest方法,这样其结果为{“isTest”:false,”url”:true}

好吧,是idea生成的这个有问题,于是改成下面这样,补充上Is

在这里插入图片描述
解析结果就正常了
{faceId=‘90240’, repositoryId=‘null’, isHit=true, catchTime=‘2020-06-23 17:47:54’}

总结:遇到一些字段为isXxxx的布尔属性,要特别留意get和set方法的名称,要补齐,不然会出现bug

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个用于解析 JSON 对象及数组的 SQL Server 函数: ```sql CREATE FUNCTION ParseJSON ( @json NVARCHAR(MAX) ) RETURNS TABLE AS RETURN SELECT [Key] = COALESCE(q.[key], a.[key]), [Value] = COALESCE(q.[value], a.[value]), [Type] = COALESCE(q.[type], a.[type]), [Index] = COALESCE(q.[index], a.[index]) FROM OPENJSON(@json) WITH ( [key] NVARCHAR(MAX) '$.key', [value] NVARCHAR(MAX) '$.value', [type] NVARCHAR(10) '$.type', [index] INT '$.index' ) q FULL OUTER JOIN OPENJSON(@json) WITH ( [key] NVARCHAR(MAX) '$.key', [value] NVARCHAR(MAX) '$.value', [type] NVARCHAR(10) '$.type', [index] INT '$.index' ) a ON q.[type] = 'array' AND q.[key] = a.[key] AND a.[type] <> 'object' ORDER BY COALESCE(q.[index], a.[index]) ``` 该函数接受一个 JSON 字符串作为输入,并返回一个表格,其中每行包含 JSON 对象或数组中的一个字段或元素,以及其类型和索引(如果适用)。该函数可以通过以下方式使用: ```sql DECLARE @json NVARCHAR(MAX) = '{ "name": "John Smith", "age": 30, "isMarried": true, "hobbies": ["reading", "sports", "music"], "address": { "street": "123 Main St", "city": "Anytown", "state": "CA", "zip": "12345" } }' SELECT [Key], [Value], [Type], [Index] FROM ParseJSON(@json) ``` 该查询将返回以下结果: ``` Key Value Type Index -------------------------------------------------- name John Smith string NULL age 30 number NULL isMarried true boolean NULL hobbies NULL array 0 hobbies reading string 0 hobbies sports string 1 hobbies music string 2 address NULL object NULL address street string NULL address city string NULL address state string NULL address zip string NULL ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值