JSON数据格式:使用Android自带的JSONO相关API进行解析 JSONObject、JSONArray
//用JSON表示一个对象,用{}
String json1 = "{id:1,name:'哈哈',sal:8000}";
//将json字符串转成JSONObject对象
JSONObject jsonObject = new JSONObject(json);
//如果属性为int类型,就用getInt(),参数为:属性名
int id = jsonObject.getInt("id");
//如果属性为String类型,就用getString(),参数为:属性名
String name = jsonObject.getString("name");
//用JSON表示一个数组,用[]
String json2 = "['上海','北京','深圳','广州']";
//用JSON表示一个对象,但对象的属性是数组{[]}
String json3 = "{id:1,name:'赵君',citys:['上海','北京','深圳','广州']}";
List<String> cityList = newArrayList<String>();
JSONObject jsonObject = new JSONObject(json3);
JSONArray jsonArray =jsonObject.getJSONArray("citys");
for(int i=0;i<jsonArray.length();i++){
String city = jsonArray.getString(i);
cityList.add(city);
}
//用JSON表示一个数组,但数组中的元素是对象[{}]
String json4 ="[{id:1,name:'哈哈'},{id:2,name:'呵呵'},{id:3,name:'嘻嘻'}]";
//创建一个JSON数组,JSONArray
JSONArray jsonArray = new JSONArray(json4);
//迭代=循环
for(int i=0;i<jsonArray.length();i++){
//获取每一个JSON对象,参数一:索引号,从0开始
JSONObject jsonObject = jsonArray.getJSONObject(i);
//因为"哈哈"这个属性值是字符串类型,用getString()
String name = jsonObject.getString("name");
System.out.println(name);
}
谷歌GSON使用:
{"showapi_res_code":0,"showapi_res_error":"","showapi_res_body":{"ret_code":0,"num":1300630,"prov":"湖北","name":"联通","provCode":"420000","type":3,"city":"武汉"}};
Gson gson = new Gson();
final AddressInfo addressinfo =gson.fromJson(jsonResult, AddressInfo.class);
JavaBean创建的时候属性名称需要与JSON字符串中的属性名称一模一样
public class AddressInfo {
// 手工
public String showapi_res_code;
public String showapi_res_error;
public ShowBody showapi_res_body;
public static class ShowBody{
public String city;
public String name;
public String num;
public String prov;
public String provCode;
int ret_code;
int type;
}
}
阿里巴巴fastjson使用:
JavaBean创建的时候属性名称需要与JSON字符串中的属性名称一模一样
集合转换成json字符串:
public voidsetWordBook(List<WordBean> listWb) {
// 数据集合转换成JSON格式字符串
String jsonStr =JSON.toJSONString(listWb);
}
Json字符串转换成集合:
List<MenuSelBean> list = newArrayList<MenuSelBean>();
String jsonStr = inputFile(fileState(MENUSEL_FILE));
if( !jsonStr.equals("") ){
list = JSON.parseArray(jsonStr , MenuSelBean.class);
}