json解析的几种方法(将字符串解析为object对象和objectArray对象数组)
1 Android自带api 包名 org.json
// json = {"school":"江夏一中","classList":[ // {"title":"一年级","number":100}, // {"title":"二年级","number":200}, // {"title":"三年级","number":300},}; private void getJsonObject(String json){ try { //将字符串json解析为object对象 JSONObject jsonObject = new JSONObject(json); //将object对象里面的name属性解析为对象数组 JSONArray jsonArray = jsonObject.getJSONArray("classList"); //将jsonArray对象数组循环取值 for (int i = 0; i < jsonArray.length(); i++) { JSONObject obj = new JSONObject(jsonArray.getString(i)); String title = obj.getString("title"); int number = obj.getInt("number"); } } catch (JSONException e) { e.printStackTrace(); } }
2 FastJson 包名 : com.alibaba.fastjson.JSON
阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分
它具备如下特征:速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser
public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject public static final T parseObject(String text, Class clazz); // 把JSON文本parse为JavaBean public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray public static final List parseArray(String text, Class clazz); //把JSON文本parse成JavaBean集合 public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本 public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本 public static final Object toJSON(Object javaObject); // 将JavaBean序列化为JSONObject或者JSONArray
3 Google Gson 包名:com.google.gson.Gson
private void testGson(String json){ Gson gson = new Gson(); Student student = gson.fromJson(json, Student.class); }