Android json解析简单示例

来源:互联网 发布:雇一次网络水军多少钱 编辑:程序博客网 时间:2024/05/22 03:39

本文讲解JSON简单的使用(使用Android 提供的相关API)

代码完成功能:创建文件,并且写入JSON文件,最后读取JSON文件并且解析。

1、设置AndroidManifest.xml的SD卡访问权限

用于之后创建文件和写入(与application同级)

<!-- 在SDCard中创建与删除文件权限 --><uses-permission android:name= "android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/><!-- 往SDCard写入数据权限 --><uses-permission android:name= "android.permission.WRITE_EXTERNAL_STORAGE" />

2、获取json文件路径

filePath = Environment.getExternalStorageDirectory().toString()+"/test.json";

3、创建JsonWriter并且写入数据

FileOutputStream fileOutputStream = new FileOutputStream(filePath);//开始写JSON数据JsonWriter jsonWriter = new JsonWriter(new OutputStreamWriter(fileOutputStream, "UTF-8"));jsonWriter.beginObject();//第一组数据jsonWriter.name("id").value("1");jsonWriter.name("name").value("王辰浩");//第二组数据jsonWriter.name("id").value("2");jsonWriter.name("name").value("陆莉");jsonWriter.endObject();jsonWriter.close();System.out.println("JSON数据写入完毕!");

4、读取数据

// 开始读JSON数据System.out.println("开始读取JSON数据");fileInputStream = new FileInputStream(filePath);//创建FileInputStreamJsonReader jsonReader = new JsonReader(new InputStreamReader(fileInputStream, "UTF-8"));jsonReader.beginObject();while (jsonReader.hasNext()) {     System.out.println(jsonReader.toString());//显示jsonReader的字符串     if (jsonReader.nextName().equals("id")) {             System.out.println("id:" + jsonReader.nextString());//获得id相应内容     }     if (jsonReader.nextName().equals("name")) {             System.out.println("name:" + jsonReader.nextString());//获得name相应内容     }}jsonReader.endObject();jsonReader.close();

json解析补充教程【转载】

链接:http://yuanzhifei89.iteye.com/blog/1141385

文本解析类JSONTokener

String jsonString = "{\"id\":\"1\",\"name\":Michael},{\"id\":\"2\",\"name\":Mike},{\"id\":\"3\",\"name\":王辰浩}";JSONTokener jsonParser = new JSONTokener(jsonString);JSONObject person = null;do{     person = (JSONObject) jsonParser.nextValue();// 此时还未读取任何json文本,直接读取就是一个JSONObject对象。     System.out.println(person.getString("id"));//获取ID     System.out.println(person.getString("name"));//获取姓名}while(jsonParser.next() != '\0');

存在数组版本

String jsonString = "{\"info\" :[{\"id\":\"1\",\"name\":Michael},{\"id\":\"2\",\"name\":Mike},{\"id\":\"3\",\"name\":王辰浩}]}";JSONTokener jsonParser = new JSONTokener(jsonString); //获取JSONTokenerJSONObject person = (JSONObject) jsonParser.nextValue();JSONArray jsonArray = person.getJSONArray("info");//获取JSONArray int length = jsonArray.length(); for(int i = 0; i < length; i++){    person = jsonArray.getJSONObject(i);         //获取JSONObject     System.out.println(person.getString("id"));   //显示ID    System.out.println(person.getString("name")); //显示name}
0 0
原创粉丝点击