使用JSONObject来生成JSON和解析JSON

来源:互联网 发布:高仿拉勾网 php源码 编辑:程序博客网 时间:2024/05/17 03:10

需求 :

1,练习使用JSONObject的方式来构建一个如下的json文件,并且将文件存储在手机的sd卡上

  {    
      "phone" : ["12345678", "87654321"], // 数组    
      "name" : "yuanzhifei89", // 字符串    
      "age" : 100, // 数值    
      "address" : { "country" : "china", "province" : "jiangsu" }, // 又是一个JSONObject对象    
      "married" : false // 布尔值    

   }    

2,练习如何解析一个如上的json文件


1,使用JSONObject来构建一个json的核心代码

JSONObject jsonObject = new JSONObject();//整体就是一个JSONObject对象JSONArray phone = new JSONArray();//第一个键值对的值是一个数组,先生成一个数组phone.put(12345678).put(87654321);jsonObject.put("phone", phone);//将json中的第一个键值对添加进去了jsonObject.put("name", "yuanzhifei89");//将json中的第二个键值对添加进去了jsonObject.put("age", 100);//第三个键值对也添加进去了JSONObject address = new JSONObject();address.put("country", "China");address.put("province", "湖北");jsonObject.put("address", address);//将第四个键值对也添加进去了jsonObject.put("married", false);//将第5个键值对添加进去//将构建好的json对象打印出来Log.i("输出信息", jsonObject.toString());


2,使用JSONObject来解析JSON的核心代码

JSONObject jsonObject = new JSONObject(text);//首先将文本变成一个JSONObject对象JSONArray array = jsonObject.getJSONArray("phone");//取出了jsonObject中的第一个键值对,其中的值是一个数组for(int i = 0; i< array.length(); i++){System.out.println("phone "+ i +" "+array.getInt(i));}String name = jsonObject.getString("name");//取出了jsonObject中的第二个键值对,其中的值是一个字符串int age = jsonObject.getInt("age");//取出了jsonObject中的第3个键值对,其中的值是一个intJSONObject address = jsonObject.getJSONObject("address");//取出了jsonObject中的第4个键值对,其中的值又是一个较小的JSONObject对象String country = address.getString("country");//将这个较小的JSONObject对象中的键值对也取出来了String province = address.getString("province");boolean married = jsonObject.getBoolean("married");//取出了jsonObject中的第5个键值对,其中的值是一个布尔型System.out.println("name  "+name+"\r\n"+"age "+age +"\r\n"+"address "+country+" "+province+"\r\n"+"married "+married);

1 0
原创粉丝点击