Json解析,同一个字段,获取的可能是对象,数组,或是null

Json解析,同一个字段,获取的可能是对象,数组,或是null的解决:

比如
“sights”字段大多数情况下是JSONObject,但是当”sights”字段没有数据时,后台直接返回null值
,而null值是不属于JSONObject的,所以在此我们用get();方法获取字段,并判断该字段的类型

 JSONObject sights = travelDetail.getJSONObject("sights");
            Log.e("sights", "parserTwoDate: "+sights);

解决:

JSONObject sights=null;
            //sights 字段获取的可能是null,不是JSONObject
            Object sightsObject = travelDetail.get("sights");
            if(sightsObject instanceof JSONObject){
                sights= (JSONObject) sightsObject;
                //Log.e("sights", "o111: "+o);
            }else{
                //Log.e("sights", "o222: "+sightsObject);
            }
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值