Json的工具:HiJson(能将Json数据变得清晰点,更容易看)
(测试时在AndroidTest那里测试,在Test那里测试会报错)
测试案例:
public class Test {
//1,2都是:将json对象转换成java对象
@org.junit.Test
public void test1() throws JSONException {
String json="{\"name\":\"Tom\",\"age\":12}";
JSONObject jsonObject=new JSONObject(json);
String name = jsonObject.getString("name");
int age=jsonObject.getInt("age");
UserBean userBean=new UserBean(name,age);
Log.e("TAG",userBean.toString());
}
@org.junit.Test
public void test2(){
String json="{\"name\":\"Tom\",\"age\":12}";
UserBean userBean = new Gson().fromJson(json, UserBean.class);
Log.e("TAG",userBean.toString());
}
//3,4都是:将json数组转换成java list集合
@org.junit.Test
public void test3() throws JSONException {
String json="[{\"name\":\"Tom\",\"age\":12},{\"name\":\"Sam\",\"age\":13}]";
JSONArray jsonArray=new JSONArray(json);
List<UserBean> userBeans=new ArrayList<UserBean>();
for(int i=0;i<jsonArray.length();i++){
JSONObject jsonObject = jsonArray.getJSONObject(i);
String name = jsonObject.getString("name");
int age=jsonObject.getInt("age");
UserBean userBean=new UserBean(name,age);
userBeans.add(userBean);
}
Log.e("TAG",userBeans.toString());
}
@org.junit.Test
public void test4(){
String json="[{\"name\":\"Tom\",\"age\":12},{\"name\":\"Sam\",\"age\":13}]";
List<UserBean> list=new Gson().fromJson(json, new TypeToken<List<UserBean>>(){}.getType());
Log.e("TAG",list.toString());
}
//将java对象转换成json字符串
@org.junit.Test
public void test5(){
UserBean userBean=new UserBean("Tom",15);
String s = new Gson().toJson(userBean);
Log.e("TAG",s);
}
//将java对象列表转换成json字符串
@org.junit.Test
public void test6(){
List<UserBean> list=new ArrayList<UserBean>();
list.add(new UserBean("Tom",15));
list.add(new UserBean("Sam",17));
String s = new Gson().toJson(list);
Log.e("TAG",s);
}
//下面这种自定义类不行的,需要封装到map上
@org.junit.Test
public void test7(){
String json="{\"my name\":\"Tom\",\"1\":12}";
Map<String,Object> map=new Gson().fromJson(json,new TypeToken<Map<String,Object>>(){}.getType());
Log.e("TAG",map.toString());
}
}