java 判断json对象的一部分是对象还是数组

发布于 2022-09-12 01:10:49 字数 227 浏览 27 评论 0

存在一个json对象,结构可能是这样:
{"data1":"v1","target":"v2"}
也可能是这样:
{"data1":"v1","target":"[{"a1":"va1","a2":"va2"}]"}
后者target是一个json数组,请问如何在不知道数据会是哪一个的情况下,做出判断,对target是对象和数组的情况做分别处理?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一杆小烟枪 2022-09-19 01:10:49

关键是看你用的是什么json解析包?如果用fastjson,你可以:

public static void main( String[] args ){
        String json1 = "{\"data1\":\"v1\",\"target\":[{\"a1\":\"va1\",\"a2\":\"va2\"}]} ";
        JSONObject obj = JSON.parseObject( json1 );
        Object targetObj = obj.get( "target" );
        if( targetObj instanceof JSONArray ){
            System.out.println( "JSONArray 数组" );
        }else if( targetObj instanceof JSONObject ){
            System.out.println( "JSONObject 对象" );
        }
}
韶华倾负 2022-09-19 01:10:49

上面已经有同学写了fastjson的代码,可以用来判断。但是我想说的是:我理解json数据是客户端和服务端的约定,每个字段的类型应该是基于约定的。

所以除了代码实现,不知道能否进行字段约定,避免类型的判断

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文