您的位置:首页 > 移动开发 > Android开发

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

2015-03-12 14:23 603 查看
今天说一下这个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("女生"));

总结:简单吧 ,主要的还是心态问题,相信谁看了都能明白,只是没能静下心来好好琢磨琢磨,其实也没啥可琢磨的,灰常简单。希望大家碰到简单代码的时候也花点时间琢磨琢磨,比黏贴复制要收获很多。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: