Java 把json对象转成map键值对的方法
作者:caox_nazi 发布时间:2023-08-25 01:58:14
标签:java,json,键值对
工具方法:本文的目的是把json串转成map键值对存储,而且只存储叶节点的数据
maven 引用jar包版本:
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20090211</version>
</dependency>
工具类:
package com.baofoo.admin.test;
//import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.json.*;
import java.util.*;
/**
* Created by BF100 on 2018/4/12.
*/
@Slf4j
public class TestByCaoxNew {
@Test
public void test1(){
try{
int a = 1/0;
}catch (Exception e){
log.error("call Exception :{}",e);
e.printStackTrace();
}
System.out.println("come on !!!");
}
@Test
public void test2() throws Exception{
String str = "{\"result\":\"success\",\"message\":\"成功!\"}";
String str2 = "{result:success,message:成功}";
// JSONObject jsStr = JSONObject.parseObject(str);
// System.out.println(jsStr);
JSONObject obj = new JSONObject(str);
Stack<JSONObject> stObj = new Stack<JSONObject>();
stObj.push(obj);
Map<String, Object> resultMap =new HashMap<String, Object>();
JsonToMap(stObj,resultMap);
Set<String> keys = resultMap.keySet();
for (String key:keys){
System.out.println(key+":"+resultMap.get(key));
}
}
/**
* @Author:sks
* @Description:把json对象数据存储在map以键值对的形式存储,只存储叶节点
* @Date:
*/
private static void JsonToMap(Stack<JSONObject> stObj, Map<String, Object> resultMap) throws Exception {
if(stObj == null && stObj.pop() == null){
return ;
}
JSONObject json = stObj.pop();
Iterator it = json.keys();
while(it.hasNext()){
String key = (String) it.next();
//得到value的值
Object value = json.get(key);
//System.out.println(value);
if(value instanceof JSONObject)
{
stObj.push((JSONObject)value);
//递归遍历
JsonToMap(stObj,resultMap);
}
else {
resultMap.put(key, value);
}
}
}
@Test
public void test3() throws Exception{
String jsonStr ="{responseHeader:{status:0,QTime:0},spellcheck:{suggestions:{中国:{numFound:9,startOffset:0,endOffset:2," +
"suggestion:[中国工商银行, 中国人民, 中国国际, 中国农业, 中国市场, 中国经济, 中国人, 中国广播, 中国文化]}}," +
"collations:{collation:中国工商银行}}}";
JSONObject obj = new JSONObject(jsonStr);
Stack<JSONObject> stObj = new Stack<JSONObject>();
stObj.push(obj);
Map<String, Object> resultMap =new HashMap<String, Object>();
JsonToMap(stObj,resultMap);
Set<String> keys = resultMap.keySet();
for (String key:keys){
System.out.println(key+":"+resultMap.get(key));
}
}
}
总结
以上所述是小编给大家介绍的Java 把json对象转成map键值对的方法,希望对大家有所帮助
来源:https://blog.csdn.net/caox_nazi/article/details/79918338


猜你喜欢
- 本文实例讲述了C#显示文件夹下所有图片文件的方法。分享给大家供大家参考。具体实现方法如下:<%@ Page Language=&quo
- 假定创建了XmlWriter的实例变量xmlWriter,下文中将使用此实例变量写Xml1.如何使用XmlWriter写Xml文档声明//
- 本文实例讲述了C#获取USB事件API。分享给大家供大家参考。具体如下:const int WM_DEVICECHANGE = 0x2190
- JNI,Java Native Interface,是 native code 的编程接口。JNI 使 Java 代码程序可以与 nativ
- ArrayBlockingQueue有界的阻塞队列,内部是一个数组,有边界的意思是:容量是有限的,必须进行初始化,指定它的容量大小,以先进先
- route_generator是什么这是一个简单的 Flutter 路由生成库,只需要少量的代码,然后利用注解配合源代码生成,自动生成路由表
- 问题springcloud 版本 为 Finchley.RELEASEspringboot 版本为 2.0.3.RELEASE现在有需求,/
- MongoDB是介于关系数据库和非关系数据库之间的一种产品,文件的存储格式为BSON(一种JSON的扩展),这里就主要介绍Java通过使用m
- 这篇文章主要介绍了Java方法参数传递机制原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可
- 两种方法,第一种是静态开启方法把application 或者 activity的主题设置为Theme.Holo即可<?xml vers
- 前言去重,对于很多场合必不可少。写此篇文章是因为在之前做某个画面中,我在数据库中进行 Distinct 和 Order By 去重,发现影响
- Java与Oracle实现事务(JDBC事务)实例详解J2EE支持JDBC事务、JTA事务和容器事务事务,这里说一下怎样实现JDBC事务。&
- C#小程序飞行棋,程序效果图1、设计分析这个程序界面大致分为四部分:① 最上面游戏名字界面②信息提示区③游戏界面区④游戏操作提示区2、分区设
- 本文实例讲述了Android 开发使用PopupWindow实现加载等待界面功能。分享给大家供大家参考,具体如下:实现加载等待界面我用了两种
- 首先是main.xml文件代码如下:<LinearLayout xmlns:android="http://schemas.
- C#将图片2值化示例代码,原图及二值化后的图片如下:原图:二值化后的图像:实现代码:using System;using System.Dr
- 还记得警匪片上,匪徒们是怎么配合实施犯罪的吗?一个团伙在进行盗窃的时候,总有一两个人在门口把风——如果有什么风吹草动,则会立即通知里面的同伙
- 前言说起整合自然离不开ssm,我本身并不太喜欢ORM,尤其是MyBatis,把SQL语句写在xml里,尤其是大SQL,可读性不高,出错也不容
- 首先是,在不同的AS中,gradle版本不同,下载的sdk版本不同,这些,都在gradle(Project、Models)相关代码里调过来就
- 本文实例讲述了Java 线程的生命周期。分享给大家供大家参考,具体如下:一 代码/*** @Title: ThreadStatus.java