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

工具方法: 本文的目的是把json串转成map键值对存储,而且只存储叶节点的数据

maven 引用jar包版本:

  1. <dependency>
  2. <groupId>org.json</groupId>
  3. <artifactId>json</artifactId>
  4. <version>20090211</version>
  5. </dependency>
复制代码

工具类:

  1. package com.baofoo.admin.test;
  2. //import com.alibaba.fastjson.JSONObject;
  3. import lombok.extern.slf4j.Slf4j;
  4. import org.junit.Test;
  5. import org.json.*; 江苏代孕
  6. import java.util.*;  江苏代孕公司
  7. /**
  8. * Created by BF100 on 2018/4/12.
  9. */
  10. @Slf4j
  11. public class TestByCaoxNew {
  12. [url=home.php?mod=space&uid=5447]@test[/url]
  13. public void test1(){
  14. try{
  15. int a = 1/0;
  16. }catch (Exception e){
  17. log.error("call Exception :{}",e);
  18. e.printStackTrace();
  19. }
  20. System.out.println("come on !!!");
  21. }
  22. @Test
  23. public void test2() throws Exception{
  24. String str = "{\"result\":\"success\",\"message\":\"成功!\"}";
  25. String str2 = "{result:success,message:成功}";
  26. // JSONObject jsStr = JSONObject.parseObject(str);
  27. // System.out.println(jsStr);
  28. JSONObject obj = new JSONObject(str);
  29. Stack<JSONObject> stObj = new Stack<JSONObject>();
  30. stObj.push(obj);
  31. Map<String, Object> resultMap =new HashMap<String, Object>();
  32. JsonToMap(stObj,resultMap);
  33. Set<String> keys = resultMap.keySet();
  34. for (String key:keys){
  35. System.out.println(key+":"+resultMap.get(key));
  36. }
  37. }
  38. /**
  39. * @Author:sks
  40. * @Description:把json对象数据存储在map以键值对的形式存储,只存储叶节点
  41. * @Date:
  42. */
  43. private static void JsonToMap(Stack<JSONObject> stObj, Map<String, Object> resultMap) throws Exception {
  44. if(stObj == null && stObj.pop() == null){
  45. return ;
  46. }
  47. JSONObject json = stObj.pop();
  48. Iterator it = json.keys();
  49. while(it.hasNext()){
  50. String key = (String) it.next();
  51. //得到value的值
  52. Object value = json.get(key);
  53. //System.out.println(value);
  54. if(value instanceof JSONObject)
  55. {
  56. stObj.push((JSONObject)value);
  57. //递归遍历
  58. JsonToMap(stObj,resultMap);
  59. }
  60. else {
  61. resultMap.put(key, value);
  62. }
  63. }
  64. }
  65. @Test
  66. public void test3() throws Exception{
  67. String jsonStr ="{responseHeader:{status:0,QTime:0},spellcheck:{suggestions:{中国:{numFound:9,startOffset:0,endOffset:2," +
  68. "suggestion:[中国工商银行, 中国人民, 中国国际, 中国农业, 中国市场, 中国经济, 中国人, 中国广播, 中国文化]}}," +
  69. "collations:{collation:中国工商银行}}}";
  70. JSONObject obj = new JSONObject(jsonStr);
  71. Stack<JSONObject> stObj = new Stack<JSONObject>();
  72. stObj.push(obj);
  73. Map<String, Object> resultMap =new HashMap<String, Object>();
  74. JsonToMap(stObj,resultMap);
  75. Set<String> keys = resultMap.keySet();
  76. for (String key:keys){
  77. System.out.println(key+":"+resultMap.get(key));
  78. }
  79. }
  80. }

猜你喜欢

转载自www.cnblogs.com/ljhseocom/p/8987718.html