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

Android数据之Json解析

2016-07-26 18:23 441 查看
1.数据为一个json对象,没有数组,使用原生JSONObject,JSONArray

例如: 单数据{‘singer’:{‘id’:01,’name’:’tom’,’gender’:’男’}}

多个数据{“singers”:[

{‘id’:02,’name’:’tom’,’gender’:’男’},

{‘id’:03,’name’:’jerry,’gender’:’男’},

{‘id’:04,’name’:’jim,’gender’:’男’},

{‘id’:05,’name’:’lily,’gender’:’女’}]}

a)单数据

JSONObject object = new JSONObject(string);
JSONObject singer = object.optJSONObject("singer");
String  sid = singer.optString("id");
String uid = singer.optString("name");
String gender = singer.optString("gender");


b)多数据

JSONObject object = new JSONObject(string);
JSONArray array = object.optJSONArray("singers");
JSONObject singer = array.opt(1);
String name = singer.optString("name");


2.数据为json格式,有数组,使用gson解析

a)无数组

Gson gson = new Gson();
//序列化
MyObject myobj = new MyObject();
String jsonstr = gson .toJson(myobj);

//反序列化
MyObject myobj = gson.fromJson(jsonstr, MyObject.class);
//序列化数组
String[] days = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
String numbersJson = gson.toJson(numbers);

//序列化集合
List<String> myobjs = new ArrayList<String>();
String jsonstr = gson.toJson(myobjs);


b)有数组

反序列化

JSONArray categorys = jsonObject.optJSONArray("category");
Gson gson = new Gson();
Type listType = new TypeToken<LinkedList<CategoryModel>>() {}.getType();
LinkedList<CategoryModel>   list = gson.fromJson(categorys.toString(), listType);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android数据解