Gson 解析 json中 value为数组
2015-11-08 19:58
633 查看
1 本文的json数据格式:
{ "hotcolumns":[ { "client": "mobile", "cname": "看东西", "ename": "ldax", "hot": true, }, { "client": "mobile", "cname": "仁说", "ename": "sda, "hot": true, } ] }
2 生成的model(JavaBean)
import java.util.List; public class JsonBean { public List<Hotcolumns> hotcolumns; public List<Hotcolumns> getHotcolumns() { return hotcolumns; } public void setHotcolumns(List<Hotcolumns> hotcolumns) { this.hotcolumns = hotcolumns; } /* "client": "mobile", "cname": "看东西", "ename": "ldx", "hot": true, */ public static class Hotcolumns { public String client; public String cname; public String ename; public String hot; public String getClient() { return client; } public void setClient(String client) { this.client = client; } public String getCname() { return cname; } public void setCname(String cname) { this.cname = cname; } public String getEname() { return ename; } public void setEname(String ename) { this.ename = ename; } public String getHot() { return hot; } public void setHot(String hot) { this.hot = hot; } } }
3 调用
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String json =readLocalJson(this); //读取数据 实际项目中一般加载网络数据:需异步请求网络 json=json.replace("\t",""); Gson gson = new Gson(); java.lang.reflect.Type type = new TypeToken<JsonBean>() {}.getType(); JsonBean jsonBean = gson.fromJson(json, type); //JsonBean.class } public static String readLocalJson(Context context){//这里测试程序 放在本地 String jsonString=""; String resultString=""; try { InputStream inputStream = context.getResources().openRawResource(R.raw.test); BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream)); while ((jsonString=bufferedReader.readLine())!=null) { resultString+=jsonString; } } catch (Exception e) { // TODO: handle exception } return resultString; } }ps:android studio中 GSon库导入比较简单:build.gradle中添加依赖: dependencies { compile 'com.google.code.gson:gson:2.2.4'}
若为简单的类型 可使用: gson.from(json JsonBean.class)
若为复杂的类型 : 使用反射
本文两者皆可。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories