android开发小技巧(5)构建JSON字符串和解析简单使用

今天说一下这个JSON解析。相信大多数新手接触这个东西的时候是比较晕的,我也是迷糊了很长时间,最后总结了下,然后发现其实静下心来研究研究的话实际上并不难理解。嗯,给新手朋友们的提示就是,千万不要眼高手低,用的时候别黏贴复制,花点时间琢磨琢磨,你就会明白这个东西是多么简单。废话不说上代码:

 

 

构建json字符串

这个没啥好说的,用String生生的拼写下来也行。拼写的时候最好用StringBuffer,方便点,效率也高点。那咱就看看不拼写,用json怎么构建。

列如:颜色对应语句,不难吧

{
    "是否全勤":false,
    "课程安排":{"语文":"两天","体育":"三天","数学":"两天"},
    "myclass":["一班","二班","三班"],
    "教师":"3个",
    "男生":20,
    "共出勤":7,
    "女生":18
    }

 

代码:

JSONObject student = new JSONObject();//代表了{}
  

下面三句就是构建这一句:"myclass":["一班","二班","三班"],
  JSONArray myclass = new JSONArray();//有几个[],就new几个 JSONArray()对象,依次添加就行
  myclass.put("一班").put("二班").put("三班");
  student.put("myclass", myclass);


  student.put("女生", 18);
  student.put("男生", 20);

  
  JSONObject schedule = new JSONObject();//有几个{},就new几个JSONObject()对象,依次添加
  schedule.put("语文", "两天");
  schedule.put("数学", "两天");
  schedule.put("体育", "三天");

  student.put("课程安排", schedule);

  student.put("共出勤", 7);
  student.put("教师", "3个"); 
  student.put("是否全勤", false);

 

解析json字符串:

先来个简单的,例如:{Code:'LIN',UserID:'1004',UserName:'奥巴马',UserType:'1'},其中就只含有一个{},代码如下:

构建:

StringBuffer sb = new StringBuffer("{Code:'");
  sb.append("LIN");
  sb.append("',UserID:'");
  sb.append(1004);
  sb.append("',UserName:'");
  sb.append("奥巴马");
  sb.append("',UserType:'");
  sb.append(102);
  sb.append("'}");
  String myjson = sb.toString();

 

解析:

JSONTokener jsonParser = new JSONTokener(myjson);   
   JSONObject person = (JSONObject) jsonParser.nextValue();//因为就一个{},此处解析的时候也是只生成一个 JSONObject的对象。
   person.getString("Code"); 
   person.getString("UserID"); 
   person.getString("UserName"); 
   person.getString("UserType"); 

 

再来个复杂点的:

 String JSON =
   "{" +   
             "   \"教师\" : \"3人\"," +   
             "   \"出勤\" : 40," +   
             "   \"班级\" : { \"男生\" : \"20人\", \"女生\" : \"21人\" }," +   
             "   \"是否全勤\" : false" +   
        "}";

 

解析:

 JSONTokener jsonParser1 = new JSONTokener(JSON);   
       JSONObject myclass = (JSONObject) jsonParser1.nextValue();   //第一个JSONObject对象
       
       myclass.getString("教师");   
       myclass.getString("出勤");    
       myclass.getJSONObject("班级");   
       myclass.getBoolean("是否全勤");

       JSONObject json2 = myclass.getJSONObject("班级");//第二个JSONObject对象
       json2.get("男生");
       json2.get("女生");

 

打印:

System.out.println( myclass.getString("教师")+"   "+myclass.getString("出勤")+"   "+myclass.getBoolean("是否全勤")+" "+json2.getString("男生")+" "+json2.getString("女生"));

 

总结:简单吧 ,主要的还是心态问题,相信谁看了都能明白,只是没能静下心来好好琢磨琢磨,其实也没啥可琢磨的,灰常简单。希望大家碰到简单代码的时候也花点时间琢磨琢磨,比黏贴复制要收获很多。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值