【Android】android-json生成与解析
2014-11-06 16:04
411 查看
JSON介绍
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,具有良好的可读性与快速编写的特性。它目前获得了大多数编程语言的支持,可以在不同平台间进行数据交换。相比于XML,它的数据体积要比XML小,编写比XML方便,传输速度比XML快很多。同时,他与JavaScript的交互更加方便。在Java中,通常使用json-lib(详情查看官网,在JAVA中使用JSON需要添加相关的jar文件,而android中自带了json-lib,只需要importorg.json.*即可使用)与Google的GSON对JSON进行操作。
JSON的数据格式
JSON通常是以包含在花括号内的键值对的形式表示的,如{"key":value};键值对中间用冒号(:)隔开,key只能是包含在双引号内的字符串,value可以是多种数据类型,比如String,number ,true, false,null, array等。如果JSON中包含多个键值对,那么,可以用逗号(,)将多个键值对隔开,比如{"name":"hua","age":24,"Can speak Chinese":true}
JSON中的数组是用方括号([])括起来的,中间的各个元素还是用逗号(,)间隔,比如[{"name":"haha","age":12},{"name":"heihei","age":23}]
一个带数组的的JSON格式数据展示:
{"pet":[{"pettype":"cat","petname":"mimi","petid":1},{"pettype":"dog","petname":"leoou","petid":2},{"pettype":"mouse","petname":"mickey","petid":3}]}Android使用JSON
1.创建一个Pet类用于作为传输的数据源
package com.example.jsontest; public class Pet { int petid; //编号 String petname; //名称 String pettype; //类型 public Pet(){}; public Pet(int petid, String petname, String pettype){ this.petid = petid; this.petname = petname; this.pettype = pettype; } public int getPetid() { return petid; } public void setPetid(int petid) { this.petid = petid; } public String getPetname() { return petname; } public void setPetname(String petname) { this.petname = petname; } public String getPettype() { return pettype; } public void setPettype(String pettype) { this.pettype = pettype; } @Override public String toString(){ return this.getPetid() + ":" + this.getPetname() + ":" + this.getPettype(); } }
2.将Pet数组内的数据生成JSON格式的数据
private String petToJson(Pet[] p) { String jsonResult = ""; JSONObject object = new JSONObject(); // 创建一个总的对象 JSONArray jsonarray = new JSONArray(); // 创建一个JSON数组 try { for (int i = 0; i < p.length; ++i) { JSONObject jsonObj = new JSONObject(); // Pet对象,json格式,每一个JSONObject待变一个pet jsonObj.put("petid", p[i].getPetid()); jsonObj.put("petname", p[i].getPetname()); jsonObj.put("pettype", p[i].getPettype()); jsonarray.put(jsonObj); } object.put("pet", jsonarray); jsonResult = object.toString(); temp = jsonResult; } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } return jsonResult; }
3.将JSON格式的数据解析成Pet对象
private void jsonToPet(String json){ try { JSONObject jsonObject = new JSONObject(json); JSONArray jsonArray = jsonObject.getJSONArray("pet"); for(int i= 0; i < jsonArray.length(); ++i){ JSONObject object = jsonArray.getJSONObject(i); Pet p = new Pet(); p.setPetid(object.getInt("petid")); p.setPetname(object.getString("petname")); p.setPettype(object.getString("pettype")); Log.e("Pet", p.toString()); } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
相关文章推荐
- Android解析JSON方式(一)服务器端生成JSON数据
- Android Json生成及解析实例
- android 详细解答json解析与生成 JSONObject JSONArray
- Android 利用Gson生成或解析json
- Android解析JSON方式 服务器端生成JSON数据--很好的例子
- Android Json 使用Jackson解析和生成json .
- Android中Json数据的生成与解析
- 【Android开发经验】Json数据格式介绍、使用Android自带类库完成Json生成与解析
- android下基本json串的生成与解析
- Android解析JSON方式 服务器端生成JSON数据
- android下基本json串的生成与解析
- Android解析Json字符串和生成json字符串
- Android原生生成JSON与解析JSON
- Android 生成和解析JSON数据
- 【Android网络开发の4】解析和生成JSON数据
- Android数据传递中json的生成和解析
- android下基本json串的生成与解析
- Json数据格式介绍、使用Android自带类库完成Json生成与解析
- Android-Json简单解析与生成实例(一)
- Android Json生成及解析实例