Android读取assets下的json文件后转化实体类
2023-09-14 09:13:59 时间
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);
}
}
相关文章
- android+制作开机动画,Android 开机动画制作详解
- android加载dex方法,android Dex文件的加载
- Android Git忽略文件
- android 验证码短信验证码,Android短信验证码倒计时验证的2种常用方式
- android 定时器实例,Android定时器和Handler用法实例分析
- java字符串转换为json对象6_Json对象与Json字符串的转化、JSON字符串与Java对象的转换…
- 【Jetpack】DataBinding 架构组件 ( 数据绑定技术简介 | Android 中的 DataBinding 数据绑定 | 启动数据绑定 | 定义数据类 | 布局文件转换 )
- 【Android 内存优化】图片文件压缩 ( Android 原生 API 提供的图片压缩功能能 | 图片质量压缩 | 图片尺寸压缩 )
- 【Android 热修复】热修复原理 ( 加载 Dex 文件到内存中 | DexClassLoader | PathClassLoader | 反射 Element[] dexElements )
- 【Android 文件管理】分区存储 ( MediaStore 文件操作 )
- 【Android 逆向】arm 汇编 ( 使用 IDA 解析 arm 架构的动态库文件 | 使用 IDA 打开 arm 动态库文件 | 切换 IDA 中汇编代码显示样式 )
- 【Android 逆向】arm 汇编 ( 使用 IDA 解析 arm 架构的动态库文件 | 分析 malloc 函数的 arm 汇编语言 )
- 【Android 逆向】Android 系统文件分析 ( cmdline 系统启动参数文件 | crypto 密码算法信息文件 | devices 设备信息文件 )
- 【错误记录】Android Studio 编译时 lint 检查报错 ( WARNING: DSL element ‘android.dataBinding.enabled‘ is obsolet )
- 【Android Gradle 插件】将自定义 Gradle 插件上传到自建 Maven 仓库 ④ ( 默认生成的 pom 文件 | Maven 中的 pom 配置 | 自定义 pom 文件节点 )
- android中文件操作详解编程语言
- Linux 优雅解析JSON文件(linux解析json)
- 亚马逊带广告的IMDb TV服务终于推出了Android和iOS应用
- Android模拟器中窗口截图存成文件实现思路及代码
- Android通过手势实现的缩放处理实例代码
- Android中删除文件以及文件夹的命令记录
- Android中利用matrix控制图片的旋转、缩放、移动
- android杂记:C++文件的添加log方法分享