GSON可以去GitHub上获取依赖
先看看我们准备解析的GSON代码
有数据头类型的复杂数据
{
"totalHits": 500,
"hits": [
{
"largeImageURL": "https://pixabay.com/get/55e0d340485aa814f6da8c7dda79367a113fd7ed50536c4870287cd5904fc15cb9_1280.jpg",
"likes": 1051,
"id": 3063284
},
{
"largeImageURL": "https://pixabay.com/get/53e2d646424fad0bffd8992cc62c337e1c37dde74e50744e722e7cd69349c4_1280.jpg",
"likes": 193,
"id": 52358
}
],
"total": 22247
}
建立一个class
名字为 Test_one
package com.huatex.json_arr;
import java.util.List;
public class Test_one {
//这里对应上面json的 Key值
private String totalHits;
private String total;
// list列表是因为上面的json有一个数组,这种包含关系的需要单独提出来
// hits 是下面定义的,对应的是 [] 这个括号里面的内容
//这个也可以定义到外面,然后调用
private List<hits> hits;
// 这里是 重写和get,set 为了简洁我就不写了
public class hits {
private String largeImageURL;
private String id;
private String likes;
// 这里是 重写和get,set 为了简洁我就不写了
}
Main方法
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//这里new一个Gson对象,下面要用
Gson gson = new Gson();
String s = "{\n" +
" \"totalHits\": 500,\n" +
" \"hits\": [\n" +
" {\n" +
" \"largeImageURL\": \"https://pixabay.com/get/55e0d340485aa814f6da8c7dda79367a113fd7ed50536c4870287cd5904fc15cb9_1280.jpg\",\n" +
" \"likes\": 1051,\n" +
" \"id\": 3063284\n" +
" },\n" +
" {\n" +
" \"largeImageURL\": \"https://pixabay.com/get/53e2d646424fad0bffd8992cc62c337e1c37dde74e50744e722e7cd69349c4_1280.jpg\",\n" +
" \"likes\": 193,\n" +
" \"id\": 52358\n" +
" }\n" +
" ],\n" +
" \"total\": 22247\n" +
"}";
// 这个解析的是外层的 这里传入两个参数
Test_one test_one = gson.fromJson(s,Test_one.class);
//这里解析的是内层的 也就是 [] 里面的内容
List<Test_one.hits> hitsList = test_one.getHits();
//这个代码可以直接解析到list列表里面
//用这个可以不用上面那两个
List<Test_one> userList = gson.fromJson(s, new TypeToken<List<Test_one>>(){}.getType());
}
}
debug得到解析的内容
内外层都解析到了