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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • XLD_小结「建议收藏」

    XLD_小结「建议收藏」1.抽取轮廓(threshold_sub_pix或者 edg_sub_pix)2.对轮廓进行合并(union_collinear_contours_xld/union_cocircul

    2022年8月6日
    4
  • pycharm-package安装配置[通俗易懂]

    pycharm-package安装配置[通俗易懂]pycharm-package安装配置第一步:打开pycharm软件;第二步:选择菜单栏File→Settings;第三步:选择“Project:XXXXX”这一栏,然后选择“ProjectInterpreter”,点击右边的“+”号;第四步:选择底下的ManageRepositories;第五步:这里可以添加或更改任意下载源,由于默认下载源是国…

    2022年8月27日
    6
  • 傅里叶变换概念及公式推导

    傅里叶变换概念及公式推导傅里叶变换傅里叶变换的目的是可将时域(即时间域)上的信号转变为频域(即频率域)上的信号,随着域的不同,对同一个事物的了解角度也就随之改变,因此在时域中某些不好处理的地方,在频域就可以较为简单的处理。傅里叶变换公式:(w代表频率,t代表时间,e^-iwt为复变函数)傅里叶变换认为一个周期函数(信号)包含多个频率分量,任意函数(信号)f(t)可通过多个周期函数(基函数)相加而合成。从物理角度

    2022年7月17日
    46
  • [硬件驱动] CAN接口

    [硬件驱动] CAN接口CAN接口的介绍:CAN总线可分为:高速CAN,低速CAN,单线CAN。1.在速度方面高速CAN的传输速率在125K~~1Mbps。低速CAN的速率在125Kbps以下,低速CAN具更好的容错性。2.这三种总线之间的最主要区别是物理层。以传输介质和线的数量说,单线CAN只需1条导线,低速容错CAN和高速CAN通过双绞线传输。还有电平的逻辑的区别,定义逻辑为1称作隐性,逻辑为0称作…

    2022年6月18日
    52
  • 最新最全 VSCODE 插件推荐(2022版)

    最新最全 VSCODE 插件推荐(2022版)文章目录一、主题及图标GitHubThemeMaterialThemeMaterialIconThemevscode-icons二、功能强化settingssyncwakatimePolacodeChinese(Simplified)LanguagePackforVisualStudioCode三、Git集成插件GitHubPullrequestsGitGraphCodeStream:GitHub,GitLab,BitbucketPRsandCodeReview

    2022年7月25日
    61
  • linux重要开源软件

    linux重要开源软件1.yocto(开源工具,定制linux系统)2.buildroot(开源工具,定制linux系统)3.arago(ti公司专用开源工具,定制linux系统)4.linaro(交叉编译工具,直接使用)5.crosstool_ng(制作交叉编译工具的工具)6.qemu(开发板仿真工具,用于SoC开发)…

    2025年6月15日
    5

发表回复

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

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