1、assets下的json文件内容:
{
"code": 200,
"message": "获取成功",
"data":[
{
"id":"001",
"name":"小猪",
"img":"StringURL1"
},
{
"id":"002",
"name":"小猫",
"img":"StringURL2"
},
{
"id":"003",
"name":"小狗",
"img":"StringURL3"
}
]
}
2、创建实体类MyBean.java
public class MyBean {
private int code;
private String message;
private List<DataBean> data;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public List<DataBean> getData() {
return data;
}
public void setData(List<DataBean> data) {
this.data = data;
}
public static class DataBean{
private String id;
private String name;
private String img;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getImg() {
return img;
}
public void setImg(String img) {
this.img = img;
}
}
}
3、读取assets下的json文件后转化实体类,AssetsUtil.java
//调用到AssetsUtil.java来读取assets下的json文件后转化实体类
public class AssetsUtil {
public static List<MyBean.DataBean> getStates(Context context) {
InputStream is = null;
ByteArrayOutputStream bos = null;
try {
is = context.getAssets().open("data.json");
bos = new ByteArrayOutputStream();
byte[] bytes = new byte[4 * 1024];
int len = 0;
while ((len = is.read(bytes)) != -1) {
bos.write(bytes, 0, len);
}
final String json = new String(bos.toByteArray());
Gson gson = new Gson();
final MyBean MyBean = gson.fromJson(json, MyBean.class);
final List<MyBean.DataBean> dataBeans = MyBean.getData();
return dataBeans;
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (is != null)
is.close();
if (bos != null)
bos.close();
} catch (IOException e) {
Log.e(TAG, "getStates", e);
}
}
return null;
}
}
4、MainActivity.java
public class MainActivity extends AppCompatActivity {
private List<MyBean.DataBean> dataBeans;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dataBeans = new ArrayList<>();
dataBeans = AssetsUtil.getStates(this);
}
}