java生成json格式数据 和 java遍历json格式数据

来源:互联网 发布:网络招生方案 编辑:程序博客网 时间:2024/06/05 09:06

java 生成json 格式的数据,在需要加入一个创建json的jar包,这个网上有好多,我使用的是org.json的jar包。

[java] view plain copy
  1. package com.dufy.javatojson;  
  2.   
  3. import java.util.Iterator;  
  4.   
  5. import javax.sound.midi.Synthesizer;  
  6.   
  7. import org.json.JSONArray;  
  8. import org.json.JSONObject;  
  9.   
  10. public class TraverseJson {  
  11.       
  12.     /** 
  13.      * 遍历json格式数据 
  14.      * @param json 
  15.      * @return 
  16.      */  
  17.     public static Object traveseJson(Object json){  
  18.           
  19.         if(json == null){  
  20.             return null;  
  21.         }  
  22.         if(json instanceof JSONObject){//json 是一个map  
  23.             //创建一个json对象  
  24.             JSONObject jsonObj = new  JSONObject();  
  25.             //将json转换为JsonObject对象  
  26.             JSONObject jsonStr = (JSONObject) json;  
  27.             //迭代器迭代 map集合所有的keys  
  28.             Iterator it = jsonStr.keys();  
  29.             while(it.hasNext()){  
  30.                 //获取map的key  
  31.                 String key = (String) it.next();  
  32.                 //得到value的值  
  33.                 Object value = jsonStr.get(key);  
  34.                 //System.out.println(value);  
  35.                 //递归遍历  
  36.                 jsonObj.put(key, traveseJson(value));  
  37.                   
  38.             }  
  39.             return jsonObj;  
  40.               
  41.         }else if(json instanceof JSONArray){// if  json 是 数组  
  42.             JSONArray jsonAry = new JSONArray();  
  43.             JSONArray jsonStr = (JSONArray) json;  
  44.             //获取Array 的长度  
  45.             int length = jsonStr.length();  
  46.             for (int i = 0; i <length; i++) {  
  47.                 jsonAry.put(traveseJson(jsonStr.get(i)));  
  48.             }  
  49.               
  50.             return jsonAry;  
  51.               
  52.         }else {//其他类型  
  53.               
  54.             return json;  
  55.         }  
  56.           
  57.           
  58.           
  59.     }  
  60.       
  61.       
  62.       
  63.     public static void main(String[] args) {  
  64.         System.out.println(traveseJson("传入要遍历的json"));  
  65. // 生成的JSON数据1    
  66. //      {  
  67. //          "QQ":["742981086@qq.com","742981086"],  
  68. //          "age":22,  
  69. //          "name":"aflyun",  
  70. //          "hobby":["编程","看书","徒步","爬山","游泳"],  
  71. //          "adderss":{"省份":"广东","市":"惠州","国籍":"中国"}  
  72. //      }      
  73.         //创建 一个JsonObjec对象  
  74.          JSONObject resJsonObj = new JSONObject();  
  75.          //姓名  
  76.          resJsonObj.put("name""aflyun");  
  77.          //年龄  
  78.          resJsonObj.put("age"22);  
  79.          //联系方式  
  80.          JSONArray arryQq = new JSONArray();  
  81.          arryQq.put("742981086@qq.com").put("742981086");  
  82.          resJsonObj.put("QQ", arryQq);  
  83.          //地址 map  
  84.          JSONObject jsonAdress = new JSONObject();  
  85.          jsonAdress.put("国籍""中国").put("省份""广东").put("市""惠州");  
  86.          resJsonObj.put("adderss", jsonAdress);  
  87.          //生成数组array  
  88.          JSONArray jArray = new JSONArray();  
  89.          jArray.put("编程").put("看书").put("徒步").put("爬山").put("游泳");  
  90.          resJsonObj.put("hobby", jArray);  
  91.            
  92.          System.out.println(resJsonObj);  
  93.            
  94.          System.err.println(traveseJson(resJsonObj));  
  95.            
  96. //数组类型的json格式数据生成          
  97.  //[  
  98.  // {"hello":"你好"},  
  99.  //     [  
  100.  //         {"在干嘛":"编程"},  
  101.  //         ["睡觉了吗","没有","不想睡","醒来了"]  
  102.  //     ]  
  103.  //]  
  104.            
  105.          JSONArray retJson = new JSONArray();  
  106.          //hello   
  107.          JSONObject aJosn = new JSONObject();  
  108.          aJosn.put("hello""你好");  
  109.          retJson.put(aJosn);  
  110.          //数组在干嘛和睡觉了吗 组装[]  
  111.          JSONArray jsa = new JSONArray();  
  112.          JSONObject jOne = new JSONObject();  
  113.          jOne.put("在干嘛""编程");  
  114.          JSONArray jTwo = new JSONArray();  
  115.          jTwo.put("没有").put("不想睡").put("");  
  116.          JSONObject jOne1 = new JSONObject("醒来了");  
  117.          jOne1.put("睡觉了吗", jTwo);  
  118.          jsa.put(jOne).put(jOne1);  
  119.         //将组装好的数据放入要返回的json数组中  
  120.          retJson.put(jsa);  
  121.            
  122.          System.out.println("------" + retJson);  
  123.          System.err.println("------" + traveseJson(retJson));  
  124.            
  125.            
  126.   
  127.     }  
  128.   
  129. }  

通过运行上面的代码就能生成我们想要的json格式的数据,如下所示:

[plain] view plain copy
  1. {"QQ":["742981086@qq.com","742981086"],"age":22,"name":"aflyun","hobby":["编程","看书","徒步","爬山","游泳"],"adderss":{"省份":"广东","市":"惠州","国籍":"中国"}}  
  2. ------[{"a":"a"},[{"b":"b"},{"c":[1,2,3]}]]  
  3. {"QQ":["742981086@qq.com","742981086"],"name":"aflyun","age":22,"hobby":["编程","看书","徒步","爬山","游泳"],"adderss":{"省份":"广东","市":"惠州","国籍":"中国"}}  
  4. ------[{"a":"a"},[{"b":"b"},{"c":[1,2,3]}]]  
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 在超市买的东西坏了怎么办 安卓系统无法安装第三方软件怎么办 金立手机报毒不能安装软件怎么办 js中下拉菜单被图片挡住怎么办 更换主机后用户名跟密码忘了怎么办 换手机号了京东账号登录不上怎么办 口令卡绑定时访问页面找不回怎么办 手机淘宝购物车不小心删除了怎么办 上淘宝网图片文字不清晰怎么办 淘宝店铺低消费人群占比多怎么办 微信只能在应用商城里面打开怎么办 淘宝买了特价商品店家不发货怎么办 红米5a装不下卡怎么办 红米3s流量太慢怎么办 红米3s触屏失灵怎么办 红米note的4g信号差怎么办 电信4g网速慢怎么办红米手机 红米3电信4g信号不好怎么办 红米note3无法连接4g怎么办 红米2a手机开不了机怎么办 红米2a不支持微信运动怎么办 红米2a开不了机怎么办 红米2a突然开不了机怎么办 苹果手机刷机刷到一半没电了怎么办 红米5手机死屏了怎么办 小米2a手机开不了机怎么办 小米2a长时间没用开不了机怎么办 红米手机玩游戏太卡怎么办 红米2a无限重启怎么办 红米3s像素好差怎么办 红米4x后摄像头进水了怎么办 红米手机卡死了又不能拆电池怎么办 红米1s格式化输入法没了怎么办 红米5a锁屏密码怎么办 红米1s手机开不开机怎么办 红米2a忘记解锁密码怎么办 红米手机忘了解锁图案怎么办 账户密码忘记了手机号不用了怎么办 手机电池用完了冲不进去电怎么办 华为手机电池一体的想扣电池怎么办 苹果微信支付显示需要验证码怎么办