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);
    }
}

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • LaTeX多行公式_latex大括号左对齐

    LaTeX多行公式_latex大括号左对齐LaTeX是一种基于ΤΕΧ的排版系统,其中非常突出的是方便而强大的数学公式排版能力。XMind2020现已支持插入LaTeX数学命令,可实时转化为数学方程。此外还支持部分简单的化学方程,理工科的朋友们从此无需再借助其它应用,在XMind中即可完成方程的输入。今天和大家分享下在XMind中如何用LaTeX输入数学公式。1.插入方程在「插入菜单」中找到方程,点击即可进入方程…

    2022年10月11日
  • 常用信息收集方法[通俗易懂]

    常用信息收集方法[通俗易懂]信息收集的种类信息收集分为被动收集和主动收集两种方式。被动信息收集:利用第三方的服务对目标进行访问:Google搜索、Shodan搜索、其他综合工具,被动信息收集是指京可能多低收集与目标相关的信息主动信息收集:通过直接扫描目标主机或者网站,主动方式能获取更多的信息,目标系统可能会记录操作信息。在信息收集中,需要收集的信息:目标主机的DNS信息、目标IP地址、子域名、旁站和C段、CMS类型、敏感目录、端口信息、操作系统版本、网站架构、漏洞信息、服务器与中间件信息、邮箱、人员、地址等。在信息收集中

  • centOS压缩和解压命令之bz2「建议收藏」

    centOS压缩和解压命令之bz2「建议收藏」.bz2压缩文件格式1:bzip2源文件压缩为.bz2格式,不保留源文件格式2:bzip2-k源文件压缩之后保留源文件注意:bzip2命令不能压缩目录.bz2解压格式1:bzip2-d压缩文件:压缩文件消失格式2:bunzip2压缩文件解压缩,-k保留压缩文件

  • 万字深研:元宇宙应该是生产力工具,而不只是游戏娱乐「建议收藏」

    万字深研:元宇宙应该是生产力工具,而不只是游戏娱乐「建议收藏」元宇宙就是一个筐,大家什么东西都往里面装。出品|Odaily星球日报(ID:o-daily)我是Odaily星球日报的创始人Mandy,Odaily近期与36Kr联合出品…

  • compoundbutton调用setChecked触发onCheckedChanged的终极解决方案;「建议收藏」

    compoundbutton调用setChecked触发onCheckedChanged的终极解决方案;「建议收藏」当我们想要实现了一个简单的有状态切换的控件的时候,我们通常会去实现,CompoundButton来实现我们想要的一个效果,最常见的就是系统的CheckBox,但是在使用的过程中,我们会发现一个问题就是:我们在使用SetChecked的时候,总是会触发,onCheckedChanged这个回掉方法;那么怎么样才能做到不触发这个回掉方法呢?首先我们需要知道为什么会触发这个方法;查看源码如下:pu

  • 传感器尺寸

    传感器尺寸传感器尺寸   图像传感器感光区域的面积大小。这个尺寸直接决定了   整个系统的物理放大率。如:1/3”、1/2”等。绝大多数   模拟相机的传感器的长宽比例是4:3(H:V),数字相机   的长宽比例则包括多种:1:1,16:9,3:2etc。   注意相机尺寸的1”=16mm≠25.4mm…

发表回复

您的电子邮箱地址不会被公开。

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