第一种:用net.sf.json硬解。缺点:要求字段名称和json字符串中的字段名同样,字段命名会违反驼峰规则,也不利于拓展;json
JSONArray jsonArray = JSONArray.fromObject(str);
JSONObject jObj = jsonArray.getJSONObject(0);
User user= (User)jObj.toBean(jObj,User.class);数组
第二种:用Gson解析json字符串。优势:写法简单,字段名称只要使用@SerializedName注解,皆能够是使对象字段和json一一对应;缺点:解析json数组这样的字符串稍微麻烦点app
Gson gson = new Gson();
User user= gson.fromJson(msg, User.class);对象
解析JSON数组:字符串
List<T> list = gson.fromJson(str, new TypeToken<List<T>>(){}.getType()); get
第三种:用jackson解析。优势:与Gson解析同样,字段名称能够使用@JsonProperty注解;class
ObjectMapper mapper = new ObjectMapper();List
User user= mapper.readValue(msg, User.class);map