Android Gson框架使用

来源:互联网 发布:淘宝客户评价在哪里 编辑:程序博客网 时间:2024/06/05 09:42

Gson是有名的用来解析Json数据的,而且它能够用于序列化数据,把各种数据转换为JavaBean(也就是存储数据的类),而且也能把Json转化为JavaBean,解析数据的过程他还能够有一些高级操作。这就让我一一道来。

首相必须做添加gson依赖
compile ‘com.google.code.gson:gson:2.6.2’

1.Gson的实例化方式:
Gson gson = new Gson();
gson = new GsonBuilder().setLenient()// json宽松
.enableComplexMapKeySerialization()//支持Map的key为复杂对象的形式
.serializeNulls() //智能null
.setPrettyPrinting()// 调教格式
.disableHtmlEscaping() //默认是GSON把HTML 转义的
.create();

其实只要第一句代码就行了,其他的都是一些配置

2.Gson的基本用法:
JavaBean转换Json字符串

     Student student = new Student();    student.setName("xuanyouwu");    student.setAge(26);    String jsonStr = gson.toJson(student);    Log.v("zzw",jsonStr);

List Map转Json字符串

     List<String> list = Arrays.asList("1", "a", "3", "rt", "5");    Log.v("zzw", gson.toJson(list));    Map<String, Object> content = new HashMap<String, Object>();    content.put("name", "xuanyouwu");    content.put("age", "26");    Log.v("zzw", gson.toJson(content));

Json字符串转JavaBean

    String studentJsonStr="{\"name\":\"xuanyouwu\",\"age\":26}";    Student student1 = gson.fromJson(studentJsonStr, Student.class);

Json字符串转List

    String listJsonStr="[\"1\",\"a\",\"3\",\"rt\",\"5\"]";    Type type = new TypeToken<ArrayList<String>>() {}.getType();    ArrayList<String> sList=gson.fromJson(listJsonStr, type);

创建JsonObject

    JsonObject jsonObject=new JsonObject();    jsonObject.addProperty("name","xuanyouwu");    jsonObject.addProperty("age",26);    log("------>create jsonObject:"+jsonObject);private void log(String data){    Log.v("zzw",data);

创建JsonArray

    JsonArray jsonElements=new JsonArray();    jsonElements.add("a");    jsonElements.add("b");    jsonElements.add("c");    jsonElements.add("d");    log("------>create jsonArray:"+jsonElements); private void log(String data){    Log.v("zzw",data);}

JsonObject 嵌套数组或者说嵌套JsonArray

             JsonObject jsonObject2=new JsonObject();    jsonObject2.addProperty("name","xuanyouwu");    jsonObject2.addProperty("age", 26);    JsonArray jsonElements2=new JsonArray();    jsonElements2.add("骑车");    jsonElements2.add("打游戏");    jsonElements2.add("看电视");    jsonObject2.add("hobby",jsonElements2);    log("------>create jsonObject inner JsonArray:"+jsonObject2);private void log(String data){    Log.v("zzw",data);}
0 0