Android Json转对象本地快速测试
2019-03-20 本文已影响0人
hai_phon
应用场景:
后台提供了服务接口,并有json数据demo,但是可能功能还没实现,这时候Android已经完成了功能,就等测试接口时可以用这个方法进行本地快速测试。
例如给出了这样的json数据:
// json数据
{
"list": [
{
"year": "string",
"month": "string",
"orders": 0,
"total_sales": "string",
"collected": "string",
"rate": "string",
"increase": 0
}
]
}
1.拷贝这段json数据,通过GsonFormat插件生成Bean,不懂的看这里GsonFormat使用
2.将Json字符串保存到格式为.json的文本中,文件名可以任意取,建议和数据Bean的名字保持一致,重点是下面调用的时候用这个名字就可以,保存到asset文件夹,没有这个文件夹的手动新建。
image.png3.将Json转Bean对象,调用下面方法。
private void getTestBannerData() {
String json = JsonUtil.getAsstesJson(mContext, "banner.json");
BannerBean banner = JsonUtil.fromJson(json, BannerBean.class);
initBanner(banner);
}
JsonUtil.java
package com.dasudian.dsd.utils.string;
import android.content.Context;
import android.content.res.AssetManager;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.lang.reflect.Type;
import com.google.gson.Gson;
/**
* JsonUtil工具类代码:
* 注意先再build配置implementation 'com.google.code.gson:gson:2.8.5'
*/
public class JsonUtil {
private JsonUtil(){}
/**
* 对象转换成json字符串
* @param obj
* @return
*/
public static String toJson(Object obj){
Gson gson = new Gson();
return gson.toJson(obj);
}
/**
* json字符串转成对象
* @param str
* @param type
* @return
*/
public static <T> T fromJson(String str, Type type) {
Gson gson = new Gson();
return gson.fromJson(str, type);
}
/**
* json字符串转成对象
* @param str
* @param type
* @return
*/
public static <T> T fromJson(String str, Class<T> type) {
Gson gson = new Gson();
return gson.fromJson(str, type);
}
/**
* 得到json文件中的内容
* @param context
* @param fileName
* @return
*/
public static String getAsstesJson(Context context, String fileName){
StringBuilder stringBuilder = new StringBuilder();
//获得assets资源管理器
AssetManager assetManager = context.getAssets();
//使用IO流读取json文件内容
try {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(
assetManager.open(fileName),"utf-8"));
String line;
while ((line = bufferedReader.readLine()) != null) {
stringBuilder.append(line.trim());
}
} catch (IOException e) {
e.printStackTrace();
}
return stringBuilder.toString();
}
}
依赖Gson库
dependencies {
...
implementation 'com.google.code.gson:gson:2.8.5'
...
}