Java遍历json_java处理json数据

Java遍历json_java处理json数据今天需要遍历一下json,但是只查到了遍历一层json的文章,满足不了多层级的json遍历。所以自己写一下,用fastJson处理。所遍历json需要考虑一下多层级的json,需要考虑的就是JSONObject和JSONArray两种情况,对这两种情况做处理,采用递归向下遍历,用instanceof判断递归到的类型,做不同处理。下边贴上代码:publicclassJsonLo…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

今天需要遍历一下json,但是只查到了遍历一层json的文章,满足不了多层级的json遍历。所以自己写一下,用fastJson处理。

所遍历json需要考虑一下多层级的json,需要考虑的就是 JSONObject 和 JSONArray 两种情况,对这两种情况做处理,采用递归向下遍历,用instanceof判断递归到的类型,做不同处理。下边贴上代码:

public class JsonLoop {

    public static String json = "{\"TITLE\":\"Json Title\",\"FORM\":{\"USERNAME\":\"Rick and Morty\"},\"ARRAY\":[{\"FIRST\":\"Rick\"},{\"LAST\":\"Morty\"}]}";

    public static void jsonLoop(Object object) {

        if(object instanceof JSONObject) {
            JSONObject jsonObject = (JSONObject) object;
            for (Map.Entry<String, Object> entry: jsonObject.entrySet()) {
                Object o = entry.getValue();
                if(o instanceof String) {
                    System.out.println("key:" + entry.getKey() + ",value:" + entry.getValue());
                } else {
                    jsonLoop(o);
                }
            }
        }
        if(object instanceof JSONArray) {
            JSONArray jsonArray = (JSONArray) object;
            for(int i = 0; i < jsonArray.size(); i ++) {
                jsonLoop(jsonArray.get(i));
            }
        }
    }

    public static void main(String[] args) {

        JSONObject jsonObject = JSON.parseObject(json);
        jsonLoop(jsonObject);
    }
}

 遍历如下包含 JSONObject 和 JSONArray 的json数据

{

    “TITLE”:”Json Title”,
    “FORM”:{

        “USERNAME”:”Rick and Morty”
    },
    “ARRAY”:[
        {

            “FIRST”:”Rick”
        },
        {

            “LAST”:”Morty”
        }
    ]
}

 下边是输出结果:

key:FIRST,value:Rick
key:LAST,value:Morty
key:USERNAME,value:Rick and Morty
key:TITLE,value:Json Title

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197707.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 10.20卸载tensorflow2.0,安装tensorflow1.14.0

    10.20卸载tensorflow2.0,安装tensorflow1.14.0这里写自定义目录标题卸载tensorflow2.0安装1.14.0卸载tensorflow2.0安装1.14.0已安装python版本3.8.5,最开始误按装了tensorflow2.0,发现2.0和1.0版本语句不兼容,解决办法:tensorflow版本问题(1版本和2版本语句不兼容)当我们在tensorflow2.0版本上写的语句是1.0的格式时,可能会报错。这时只修改两条语句,就可以覆盖全部语句,不需要再担心。下面展示一些内联代码片。//Acodeblockvarfoo=

    2022年6月22日
    35
  • web服务器有哪几种_web服务器的虚拟目录

    web服务器有哪几种_web服务器的虚拟目录当我们打开电脑,通过浏览器看到的网站,所有网站服务器多是我们所说的web服务器,具体解释就是一种驻留在Internet上的计算机程序,web服务器通过存储网站文件,放置大小不一各类数据文件,来进行工作,所以世界上每个角落多有它的身影。我们常见的Web服务器协议有三种,1、HTTP协议,2、HTML文档格式,最后是浏览器统一资源定位器,也就是我们常见的URL。第一种:IISIIS是我们网站用的最普遍的web服务器,IIS允许在公共网络上或者普通网络上发布信息的服务器,使IIS成为使用最广的web服务器之

    2022年9月19日
    0
  • Laravel 中 offset,limit 或 skip , take 的使用

    Laravel 中 offset,limit 或 skip , take 的使用

    2021年10月29日
    93
  • [TensorFlow 学习笔记-02]配置PyCharm IDE环境「建议收藏」

    [TensorFlow 学习笔记-02]配置PyCharm IDE环境「建议收藏」工欲善其事必先利其器,IDE我选择的是PyCharm。[本地环境]操作系统:Windows7bit[PyCharm下载地址]下载地址:http://www.jetbrains.com/pycharm/download/#section=windows选择版本:Community,具体如下图所示:**[安装PyCharm]**采用默认安装方式,安装成功后,首次出现如下界面,Cr

    2022年8月26日
    2
  • java之父

    java之父《Java》之父——詹姆斯·高斯林和麦克·舍林丹也加入了帕特里克的工作小组。他们和其他几个工程师一起在加利福尼亚州门罗帕克市沙丘路的一个小工作室里面研究开发新技术,瞄准下一代智能家电(如微波炉)的程序设计,SUN公司预料未来科技将在家用电器领域大显身手。团队最初考虑使用C语言,但是很多成员包括SUN的首席科学家比尔·乔伊,发现C和可用的API在某些方面存在很大问题。工作小组

    2022年7月7日
    29
  • js 闭包传参_JavaScript闭包演示

    js 闭包传参_JavaScript闭包演示有个网友问了个问题,如下的html,为什么每次输出都是5,而不是点击每个p,就alert出对应的1,2,3,4,5。闭包演示functioninit(){varpAry=document.getElementsByTagName(“p”);for(vari=0;ipAry[i].onclick=function(){alert(i);}}}产品一产品二产品三产品四产品五解决方…

    2022年6月15日
    62

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号