首页 > 开发 > Java > 正文

Java 把json对象转成map键值对的方法

2024-07-14 08:40:22
字体:
来源:转载
供稿:网友

工具方法: 本文的目的是把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键值对的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对VeVb武林网网站的支持!


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表