Gson简要入门

Google官方的一个Gson解析工具,方便用来生成Json,解析Gson

项目地址:https://github.com/google/gson 文档地址:https://github.com/google/gson/blob/master/UserGuide.md

Gson有什么用?解决了什么问题?

让Json解析成对象,让对象转Json异常方便.两行代码搞定

Gson使用步骤

  1. 在项目中引入Gson
  2. 编辑或生成Javabean类
  3. 解析Json成Javabean对象,或从Javabean对象生成Json字符串

1.引入Gson

在build.gradle中的dependencies添加

compile 'com.google.code.gson:gson:2.8.0'

2.编辑或生成Javabean类

编辑Javabean类:当然你可以手写这个Json字符对应的Javabean类,这没有问题 生成Javabean类:利用Android Studio插件GsonFormat生成Javabean类,Like this:

Note:在用插件生成Javabean对象的时候,一定得用完整,标准的Json字符串,我的意思是:不要少了某个字段

Json字符

{
    "firstName": "John",
    "lastName": "Smith",
    "sex": "male",
    "age": 25,
    "address": {
        "streetAddress": "21 2nd Street",
        "city": "New York",
        "state": "NY",
        "postalCode": "10021"
    },
    "phoneNumber": [{
            "type": "home",
            "number": "212 555-1234"
        },
        {
            "type": "fax",
            "number": "646 555-4567"
        }
    ]
}

3.解析Json成Javabean对象,或从Javabean对象生成Json字符串

解析Json字符成Bean对象

    public void serialiation() {
        String jsonStr = "{\n" +
                "    \"firstName\": \"John\",\n" +
                "    \"lastName\": \"Smith\",\n" +
                "    \"sex\": \"male\",\n" +
                "    \"age\": 25,\n" +
                "    \"address\": {\n" +
                "        \"streetAddress\": \"21 2nd Street\",\n" +
                "        \"city\": \"New York\",\n" +
                "        \"state\": \"NY\",\n" +
                "        \"postalCode\": \"10021\"\n" +
                "    },\n" +
                "    \"phoneNumber\": [{\n" +
                "            \"type\": \"home\",\n" +
                "            \"number\": \"212 555-1234\"\n" +
                "        },\n" +
                "        {\n" +
                "            \"type\": \"fax\",\n" +
                "            \"number\": \"646 555-4567\"\n" +
                "        }\n" +
                "    ]\n" +
                "}";
        Gson gson = new Gson();
        GenerateJsonBean jsonBean = gson.fromJson(jsonStr, GenerateJsonBean.class);
        Log.i(TAG, "serialiation: "+jsonBean.getName());
    }

从Bean对象生成Json字符串

    public void deserialiation() {
        GenrateJavabean javabean = new GenrateJavabean();
        Gson gson = new Gson();
        String jsonStr = gson.toJson(javabean);
        Log.i(TAG, "deserialiation: " + jsonStr);
    }

更多用法,高级用法可官方文档和下面文章

results matching ""

    No results matching ""