string转JSONObject遍历多层找到key的value

string转JSONObject遍历多层找到key的value先上代码packagecom.zhph;/***@Description:*@Author:xuhaibo*@Date:${Date}*@ModifiedBy:*/importnet.sf.json.JSONArray;importnet.sf.json.JSONObject;importjava.util.Iterator;/****@compa

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

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

先上代码

package com.zhph;

/** * @Description: * @Author:xuhaibo * @Date:${Date} * @Modified By: */
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import java.util.Iterator;

/** * * @company * @author superboo * @version 3.0 * @date 2014-5-21 上午09:45:51 */
public class JsonRaws { 
   
    public String getJsonStr1() {
        String jsonStr = "{\"id\":\"1ui2kdic9\",\"j1\":{\"dd\":\"dd\",\"uu\":\"uu\"},\"j2\":{\"33\":\"33\",\"66\":\"66\",\"j22\":{\"00\":0}},\"name\":\"110\"}";
        return jsonStr;
    }
    public String getJsonStr2() {
        String jsonStr = "{\"id\":\"1ui2kdic9\",\"j1\":{\"dd\":\"dd\",\"uu\":\"uu\"},\"j2\":{\"33\":\"33\",\"66\":\"66\",\"j22\":{\"j0\":0},\"j23\":{\"00\":0}},\"name\":\"110\"}";
        return jsonStr;
    }
    @SuppressWarnings("rawtypes")
    public void  analysisJson(Object objJson){
        //如果obj为json数组
        if(objJson instanceof JSONArray){
            JSONArray objArray = (JSONArray)objJson;
            for (int i = 0; i < objArray.length(); i++) {
                analysisJson(objArray.get(i));
            }
        }
        //如果为json对象
        else if(objJson instanceof JSONObject){
            JSONObject jsonObject = (JSONObject)objJson;
            Iterator it = jsonObject.keys();
            while(it.hasNext()){
                String key = it.next().toString();
                Object object = jsonObject.get(key);
                //如果得到的是数组
                if(object instanceof JSONArray){
                    JSONArray objArray = (JSONArray)object;
                    analysisJson(objArray);
                }
                //如果key中是一个json对象
                else if(object instanceof JSONObject){
                    analysisJson((JSONObject)object);
                }
                //如果key中是其他
                else{
                    if (key.equals("33")) {
                        System.out.println("[" + key + "]:" + object.toString() + " ");
                    }
                }
            }
        }
    }
    public static void main(String[] args) {
        JsonRaws jw = new JsonRaws();
        JSONObject jsonObject = JSONObject.fromObject(jw.getJsonStr1());
        jw.analysisJson(jsonObject);
    }
}

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

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

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


相关推荐

  • pool2_commons pool

    pool2_commons pool一次服务上线没多久,页面处于刷新状态,系统发生假死,查看后台日志,并未发现任何的异常信息,在请求接口处增加debug日志后发现,程序在执行到数据库查询相关的地方卡死了。怀疑是数据库连接的问题,但是使用Navicat连接数据库正常。通过jstack导出线程快照发现,jstack<pid>>>jstack.log大量处于WAITTING状态的线程,而这些线程都是在调用borrowObject方法,这个是apachecommon…

    2022年9月19日
    3
  • 使用 PyCharm 远程调试 Django 程序「建议收藏」

    使用 PyCharm 远程调试 Django 程序「建议收藏」这阵子组内流行使用Django写管理端程序。大家习惯了在Windows上使用PyCharm等IDE快速方便地进行开发,但是由于管理端使用了一些公司的公共组件,而这些组件又只提供了Linux上的Python接口,因此必须在Linux上运行Django程序。值得庆幸的是,大多数的IDE都提供了远程调试功能,PyCharm也可以经过简单配置进行远程调试。场

    2022年8月28日
    3
  • SpringBoot自动装配原理分析

    SpringBoot自动装配原理分析先看看SpringBoot的主配置类:里面有一个main方法运行了一个run()方法,在run方法中必须要传入一个被@SpringBootApplication注解的类。@SpringBootApplicationSpringBoot应用标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot就会运行这个类的main方法来启动SpringBoot项目。那@…

    2022年8月21日
    8
  • docker容器获取宿主机IP「建议收藏」

    docker容器获取宿主机IP「建议收藏」1.bridge模式启动.通过环境变量–envHOST_IP=xxxx,通过环境变量$HOST_IP获取将主机/proc目录挂载到容器中(未验证)2.host模式启动通过iproute获取

    2022年8月21日
    13
  • UDP协议功能

    UDP协议功能为了在给定的主机上能识别多个目的地址,同时允许多个应用程序在同一台主机上工作并能独立地进行数据报的发送和接收,设计用户数据报协议UDP。1、使用UDP协议包括:TFTP、SNMP、NFS、DNSUDP使用底层的互联网协议来传送报文,同IP一样提供不可靠的无连接数据报传输服务。它不提供报文到达确认、排序、及流量控制等功能。2、UDP的报报文格式每个UDP报文分UDP报头和UDP数据区两部分。…

    2022年5月27日
    106
  • mac ntfs 读写操作[通俗易懂]

    mac ntfs 读写操作[通俗易懂]发现mac系统无法对ntfs盘进行写操作,找到了解决办法,这里做个记录。1、在spotlight(就是那个放大镜图标)中输入“终端”二字,然后按enter。2、打开终端后输入diskutillist查看所有分区的卷标。[MacxdeMacBook-Pro:~Macx$diskutillist/dev/disk0(internal,physical):#:…

    2022年6月17日
    20

发表回复

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

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