1.JSON解析查找指定数据字段
String strData = "{" + "userbean" + ":" + "{" + "Uid" + ":"
+ "100196" + "," + "Showname" + ":"
+ "\u75af\u72c2\u7684\u7334\u5b50" + "," + "Avtar"
+ ":null," + "State" + ":1}" + "}";
JSONTokener jsonParser = new JSONTokener(strData);
JSONObject person = null;
try {
person = (JSONObject) jsonParser.nextValue();
System.out.println("person=======" + person); // 这里可以成功读取
// String str = person.getString("Showname").toString(); //
// 这里读取失败
String uid = person.getJSONObject("userbean").getString(
"Showname");
System.out.println("uid==" + uid);
String strUserbean = person.getJSONObject("userbean")
.getString("Uid");
System.out.println("str==" + strUserbean);
String sta = person.getJSONObject("userbean")
.getString("State");
System.out.println("sta==" + sta);
} catch (JSONException e) {
e.printStackTrace();
System.out.println("fail...");
}
2.JSON字符串转为实体类:
Jar包为:(import com.alibaba.fastjson.JSONObject;)
Map map=new HashMap();
map.put("name","张三");
map.put("age","12");
String param= JSON.toJSONString(map);
User user= JSONObject.parseObject(param, User.class);
注意:实体类必须包含JSON字符串中的属性字段,如实体类User必须包含name和age字段
3.JSON对象中的List集合取出转为实体类集合
Jar包为:(import com.alibaba.fastjson.JSONArray;)
List<User> userList = JSONArray.parseArray(dept.getUser(),User.class);
4.读取响应的内容,返回结果JSON转成Map类型
/**
* 读取响应的内容,返回结果JSON转成Map类型
*
* @param body
* @return
*/
public static Map<String, String> ReadResponseBodyContent(String body) {
HashMap map = new HashMap();
try {
JSONObject e = JSON.parseObject(body);
if (null != e) {
Iterator i$ = e.entrySet().iterator();
while (i$.hasNext()) {
Map.Entry entry = (Map.Entry) i$.next();
map.put(entry.getKey(), entry.getValue().toString());
}
}
} catch (Exception var6) {
map.put("errorMessage", body);
}
return map;
}