您的位置:首页 > 产品设计 > UI/UE

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)

若为复杂的类型 :  使用反射

本文两者皆可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  gson json 数组 android