Android开发:JSON数据的读写方法

用习惯了XML,总觉得JSON可读性又差,也不好保存等等,到真正接触了,才发现在Android上,JSON就像亲儿子一样容易管教。 

还是先看数据源,数据源我采用的是一系列的村民集合,村民的属性如下。 

public class Folk {         String name;         String career;         String age;         int salary;         boolean sex;     }  

先看写数据,数据是我假定一个村的数据,由一个arraylist填装。通过一个for循环很容易取出了arraylist中的每个对象以及其数据,每个对象,即村民都可以生成一个JSONobject,这里json和java面向对象的思想是多么吻合。prey load! 
其次还有一个JSONarray对象,就是一个JSON自己的Arraylist。好比我们把自己的对象转存到一个Json对象中,从我们的Arraylist中取出来,再装进一个Json的Arraylist。好比我把一个个村名从一辆大卡车上接下来(从自己的ArrayList取),把他们穿戴整齐了(装进Json对象中),再挥挥手把他们送上火星游的太空飞船(jsonArray),临走我在飞船上挂上了village的标签,火星上的同事会知道我的村民坐的是哪艘船。所有工序完成。 

本文源码下载:

免费下载地址在

用户名与密码都是

具体下载目录在 /pub/Android源码集锦/2011年/12月/Android开发:JSON数据的读写方法 /

代码如下。

public class MyJsonWriter {       ArrayList<Folk> folks;       File saveFile;       public MyJsonWriter(ArrayList<Folk> folks){           this.folks=folks;       }              public void setFilePath(String filepath){           saveFile=new File(filepath);           try {               saveFile.createNewFile();           } catch (IOException e) {               // TODO Auto-generated catch block                e.printStackTrace();           }       }              public String getJsonData(){           String jsonData = null;   //      String jsonData=new JSONStringer().object().key("village").value("abc").endObject().toString();            try {               StringBuilder builder=new StringBuilder();               ArrayList<String> folksData=new ArrayList<String>();               JSONArray array=new JSONArray();               for(int i=0;i<folks.size();i++){                   Folk folk=folks.get(i);                   JSONObject jsonObject=new JSONObject();                   jsonObject.put("name", folk.getName());                   jsonObject.put("sex", folk.isSex()?"male":"female");                   jsonObject.put("age", folk.getAge());                   jsonObject.put("career", folk.getCareer());                   jsonObject.put("salary", folk.getSalary());                   folksData.add(jsonObject.toString());                   array.put(jsonObject);               }   //          JSONArray jsonArray=new JSONArray(folksData);                int len =   array.length();               jsonData=new JSONStringer().object().key("vallage").value(array).endObject().toString();               System.out.println(jsonData);               writeData(jsonData);           } catch (JSONException e) {               // TODO Auto-generated catch block                e.printStackTrace();           }           return jsonData;       }          private void writeData(String jsonData) {           // TODO Auto-generated method stub            try {               BufferedReader reader=new BufferedReader(new StringReader(jsonData));               BufferedWriter writer=new BufferedWriter(new FileWriter(saveFile));               int len=0;               char[] buffer=new char[1024];                while((len=reader.read(buffer))!=-1){                   writer.write(buffer, 0, len);               }               writer.flush();               writer.close();               reader.close();           } catch (IOException e) {               // TODO Auto-generated catch block                e.printStackTrace();           }       }   }  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyfxzp.html