JAVA解析Json并输出所有属性值,多层次

2023-11-04

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.ObjectUtils;

// 该类可以解析所有层次的Json属性并输出
public class AllJsonParser {
    public static void main(String[] args) {
        String jsonStr = "YOUR_JSON_HERE";
        Object obj = JSON.parse(jsonStr);
        JSONObject jsonObject = JSONObject.parseObject(jsonStr);
        
        AllJsonParser.traverseJson(jsonObject);
    }
    
    public static void parseJson(Object obj) {
        if (obj instanceof JSONObject) {
            JSONObject jsonObj = (JSONObject) obj;
            for (String key : jsonObj.keySet()) {
                Object value = jsonObj.get(key);
                System.out.println(key + ": " + value.toString());
                parseJson(value);
            }
        } else if (obj instanceof JSONArray) {
            JSONArray jsonArray = (JSONArray) obj;
            for (int i = 0; i < jsonArray.size(); i++) {
                Object value = jsonArray.get(i);
                parseJson(value);
            }
        }
    }
    
    public static void traverseJson(JSONObject jsonObj) {
        for (String key : jsonObj.keySet()) {
            Object obj = jsonObj.get(key);
            if (obj instanceof JSONObject) {
                System.out.println(obj + " : ");
                traverseJson((JSONObject) obj);
            } else if (obj instanceof JSONArray) {
                System.out.println(key + " : ------->");
                JSONArray jsonArray = (JSONArray) obj;
                for (Object o : jsonArray) {
                    if (o instanceof JSONObject) {
                        traverseJson((JSONObject) o);
                    } else {
                        System.out.println(o);
                    }
                }
            } else {
                System.out.println(key + " : " + (ObjectUtils.isEmpty(obj) ? "空" : obj));
            }
        }
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAVA解析Json并输出所有属性值,多层次 的相关文章

随机推荐

  • 判断用户是否已关注公众号

    背景 业务场景是 判断当前登录用户是否已经关注指定的官方微信公众号 没有就指引用户关注 微信公众号官方文档 https developers weixin qq com doc offiaccount Getting Started Ove
  • CocosCreator中TiledMap在真机无法读取, 浏览器和模拟器正常

    找到CocosCreator的安装路径 我这边是CocosCreator191 resources static build templates wx libs xmldom 打开dom js文件 找到第127行 将 copy ls lis
  • Ubuntu 通过 ssh 传输文件

    因为在 ubuntu 中 微信和qq不方便安装 为了便于不同电脑之间传输文件 便通过ssh 文章目录 ssh 客户端和服务端安装 简单使用 scp文件传输 免密传输 WindTerm ssh 客户端和服务端安装 安装 ssh 服务端 sud
  • 低功耗基础概念——Level Shifter cell补充

    文章目录 为什么现在的IC中高低电压差别不大 仍然需要LS level shifter H2L Level shifer L2H Level shifer Lib文件中对level shifter的描述 信号跨越不同级别电压模块进行驱动时
  • 【论文阅读】A CNN-Transformer Hybrid Approach for CropClassification Using MultitemporalMultisensor Images

    论文题目 利用多时相多传感器图像进行作物分类的CNN Transformer混合方法 目录 摘要 I INTRODUCTION II RELATE WORK A Ground Truth of Crop Types B Preprocess
  • QtWebApp介绍、下载和搭建http轻量级服务器Demo

    一 QtWebApp介绍 QtWepApp是一个C 中的HTTP服务器库 其灵感来自Java Servlet 适用于Linux Windows Mac OS和Qt Framework支持的许多其他操作系统 QtWebApp包含以下组件 HT
  • CTFshow-菜狗杯WP

    经过了48小时的奋战 在这次比赛中成功拿下4400分 同时也发现了自己的许多不足 MISC 杂项签到 下载附件后进行解压 发现是一张图片 通过二进制查看工具 WinHex 010 Editor 打开该图片 Ctrl F搜索文本 ctfsho
  • [Leetcode]回文数(python版)

    判断一个整数是否是回文数 回文数是指正序 从左向右 和倒序 从右向左 读都是一样的整数 示例1 输入 121 输出 true 示例2 输入 121 输出 false 解释 从左向右读 为 121 从右向左读 为 121 因此它不是一个回文数
  • 远程连接mysql失败异常,未配置权限,skip-name-resolve以及防火墙

    刚安装好 mysql之后 用 navicat 连接MySQL 是连不上的 mysql 默认是只能本地连接 如果需要远程连接 需要配置连接权限 我的mysql 版本是 MySQL 5 6 40 本地连接之后 需要重置密码 set passwo
  • Docker导出导入本地镜像

    镜像导出到本地 docker save o root images myminio tar myminio v1 root images myminio tar 新建镜像名 myminio v1 需导出镜像名 镜像导入 docker loa
  • sqli-labs(31-40)

    人过留名 雁过留声 人生天地间 凡有大动静处 必有猪头 Less 31 源码分析 和 Less 29 相似 就是参数使用双引号 括号引用了 注入的时候注意闭合即可 Less 32 源码分析 check addslashes 转义的字符有 反
  • 如何在PHP中以编程方式将Excel文件转换为PDF?试试Aspose

    Excel电子表格被广泛用于以行和列的形式存储和分析数据 但是 在各种情况下 需要先将Excel文件转换为PDF 然后才能通过Internet共享它们 为了自动将Excel转换为PDF 本文介绍了 如何使用PHP通过编程将Excel文件转换
  • 你们要的终极指南! 交易API接口

    股票API接口可谓是量化交易和金融工具中最重要的组成部分 一个高质量的交易API接口对于量化交易程序员而言可谓是福星 因其可使得程序员们进行后向测试 得到可靠的测试结果 验证自己制定的交易策略是否有效 甚至构建自己的财富主页 有可能成为下一
  • 主从架构&lua脚本-Redis(四)

    上篇文章介绍了rdb aof持久化 持久化RDB AOF Redis 三 https blog csdn net ke1ying article details 131148269 redis数据备份策略 写job每小时copy一份到其他目
  • Ubuntu22.04更换国内镜像源(阿里、网易163、清华、中科大)

    更换方法 Ubuntu采用apt作为软件安装工具 其镜像源列表记录在 etc apt source list文件中 首先将source list复制为source list bak备份 然后将source list内容改为需要的镜像源列表即
  • unity 在pc平台 重启应用程序

    void ReStart 延迟5秒启动 string strs new string echo off echo wscript sleep 5000 gt sleep vbs start wait sleep vbs start d 0
  • 深度学习训练营Resnet之鸟类识别

    深度学习训练营之鸟类识别 原文链接 理论知识储备 为什么会提出ResNet ResNet 环境介绍 前置工作 设置GPU 导入数据并进行查找 数据处理 可视化数据 配置数据集 残差网络的介绍 构建残差网络 模型训练 开始编译 结果可视化 训
  • jupyter虚拟环境连接内核失败

    当你的Jupyter一直显示 连接内核中 或者是404 那么不妨考虑是否是防火墙的问题 首先使用conda install ipykernel 这样可以在jupyter上看到内核 依次把对应的虚拟环境的目录下的python exe pyth
  • java工具之解析yaml文件

    工具使用背景 很多配置项都是使用yaml的格式进行配置的 按一定的格式进行缩进 一眼看上去 清晰明了 如Springboot工程下图所示 如 k8s的Deploy文件 本次写这个yaml工具解析是想解析k8s的config文件 然后封装一个
  • JAVA解析Json并输出所有属性值,多层次

    import com alibaba fastjson JSON import com alibaba fastjson JSONArray import com alibaba fastjson JSONObject import org