Gson简要入门
Google官方的一个Gson解析工具,方便用来生成Json,解析Gson
项目地址:https://github.com/google/gson 文档地址:https://github.com/google/gson/blob/master/UserGuide.md
Gson有什么用?解决了什么问题?
让Json解析成对象,让对象转Json异常方便.两行代码搞定
Gson使用步骤
- 在项目中引入Gson
- 编辑或生成Javabean类
- 解析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);
}