详情见博客
原文链接:https://blog.youkuaiyun.com/qq_34394010/article/details/78180289
1、一个比较常见的json字符串:
String json1="{'name':'zhangsan','age':23}";
解析:Gson gson = new Gson();
UserBean bean = gson.fromJson(json1, UserBean.class);
System.out.println(bean);
2、解析一个json数组:
String json2="[{'name':'zhangsan'},{'name':'lisi'},{'name':'王五'}]";解析:
JSONArray jsonArray = new JSONArray(json2);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObj = jsonArray.getJSONObject(i);
String name = jsonObj.getString("name");
System.out.println(name);
}
这里需要导入一个json jar包,才能使用jsonArray和JSONOBJECT;
注意:import org.json.JSONArray;
import org.json.JSONObject;
这里导入的类是这两个类,不要导错;
3、解析一个map类型的json字符串:
String json3="{'1':{'name':'zhangsan'},'3':{'name':'lisi'},'4':{'name':'wangwu'}}"
解析:
JSONObject jsonObj = new JSONObejct(json3);
Gson gson = new Gson();
Map<String,UserBean> map = gson.fromJson(new TypeToken<Map<String,UserBean>>(){}.getTypeToken());
for(UserBean bean:map.values()){
System.out.println(bean);
}
4、解析一个比较复杂的json字符串
String json4="{'name':'zhangsan','age':23,'interests':[{'interest':'篮球','colors':['绿色','黄色']},{'interest':'足球','colors':['红色','蓝色']}]}";
分析:json4最外层是一个json字符串,内层包含一个json数组,数组是由两个json字符串组成,而在内部的json字符串中又包含json数组
解析:
JSONObject jsonObject = new JSONObject(json4);
String userName = jsonOBject.getString("name");//可以获得用户的名称
JSONArray jsonArray = jsonObjct.getJSONArray("interests");
for(int i=0;i<jsonArray.length();i++){
JSONObject jsonTwo = jsonArray.getJSONObejct(i);
String interest = jsonObjectTwo.getString("interest");
JSONArray jsonArrayThree= jsonObjectTwo.getJSONArray("colors");
for(int j=0;j<jsonArrayThree.length();i++){
System.out.println(jsonArrayThree.getString(j));
}
}