json怎样解析

  介绍

小编给大家分享一下json怎样解析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

, json是一种取代XML的数据结构,和XML相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度。

<强>一、json解析之传统的json解析

1,生成json字符串

createJsonString公共静态字符串(字符串键,对象价值){   JSONObject JSONObject=new JSONObject ();   jsonObject。put(关键字,值);返回jsonObject.toString ();   }

<强> 2,解析JSON字符串

分为以下三种情况,一个JavaBean,一个列表数组,一个嵌套映射的列数组:

进口java.util.ArrayList;   进口java.util.HashMap;   进口java.util.Iterator;   进口并不知道;   进口java.util.Map;      进口org.json.JSONArray;   进口org.json.JSONObject;      进口com.android.myjson.domain.Person;/* *   *完成对json数据的解析   *   */公开课JsonTools {         公共静态人getPerson(字符串,字符串jsonString) {   人的人=new ();   尝试{   JSONObject JSONObject=new JSONObject (jsonString);   JSONObject personObject=jsonObject.getJSONObject (“person");   person.setId (personObject.getInt (“id"));   person.setName (personObject.getString (“name"));   person.setAddress (personObject.getString (“address"));   }捕捉(异常e) {//TODO:处理异常   }   返回的人;   }      公共静态列表getperson(字符串,字符串jsonString) {   名单列表=new ArrayList ();   尝试{   JSONObject JSONObject=new JSONObject (jsonString);//返回json的数组   JSONArray JSONArray=jsonObject.getJSONArray(关键);   for (int i=0;我& lt;jsonArray.length ();我+ +){   JSONObject jsonObject2=jsonArray.getJSONObject(我);   人的人=new ();   person.setId (jsonObject2.getInt (“id"));   person.setName (jsonObject2.getString (“name"));   person.setAddress (jsonObject2.getString (“address"));   list.add(人);   }   }捕捉(异常e) {//TODO:处理异常   }   返回列表;   }      公共静态列表getList(字符串,字符串jsonString) {   名单列表=new ArrayList ();   尝试{   JSONObject JSONObject=new JSONObject (jsonString);   JSONArray JSONArray=jsonObject.getJSONArray(关键);   for (int i=0;我& lt;jsonArray.length ();我+ +){   字符串味精=jsonArray.getString(我);   list.add(味精);   }   }捕捉(异常e) {//TODO:处理异常   }   返回列表;   }      公共静态List>listKeyMaps(字符串键,   字符串jsonString) {   List>列表=new ArrayList> ();   尝试{   JSONObject JSONObject=new JSONObject (jsonString);   JSONArray JSONArray=jsonObject.getJSONArray(关键);   for (int i=0;我& lt;jsonArray.length ();我+ +){   JSONObject jsonObject2=jsonArray.getJSONObject(我);   地图地图=new HashMap ();   迭代器迭代器=jsonObject2.keys ();   而(iterator.hasNext ()) {   字符串json_key=iterator.next ();   对象json_value=https://www.yisu.com/zixun/jsonObject2.get (json_key);   如果(json_value==null) {   json_value=" ";   }   地图。把(json_key json_value);   }   list.add(地图);   }   }捕捉(异常e) {//TODO:处理异常   }   返回列表;   }   }

<强>二,JSON解析之GSON

进口com.google.gson.Gson;      公开课JsonUtils {      公共静态字符串createJsonObject(对象obj) {   Gson Gson=new Gson ();   字符串str=gson.toJson (obj);   返回str;      }   }//二,解析JSON      进口java.util.ArrayList;   进口并不知道;   进口java.util.Map;      进口com.google.gson.Gson;   进口com.google.gson.reflect.TypeToken;      ;   公开课GsonTools {      公共GsonTools () {//TODO自动生成构造函数存根   }/* *   * @param   * @param jsonString   * @param cls   * @return   */公共静态T getPerson(字符串jsonString类cls) {   T T=零;   尝试{   Gson Gson=new Gson ();   t=gson.fromJson (jsonString cls);   }捕捉(异常e) {//TODO:处理异常   }   返回t;   }/* *   *使用Gson进行解析列表   *   * @param   * @param jsonString   * @param cls   * @return   */公共静态列表getperson(字符串jsonString类cls) {   名单列表=new ArrayList ();   尝试{   Gson Gson=new Gson ();=gson.fromJson列表(jsonString,新的TypeToken> () {   } . gettype ());   }捕捉(异常e) {   }   返回列表;   }/* *   * @param jsonString   * @return   */公共静态列表getList(字符串jsonString) {   名单列表=new ArrayList ();   尝试{   Gson Gson=new Gson ();=gson.fromJson列表(jsonString,新的TypeToken> () {   } . gettype ());   }捕捉(异常e) {//TODO:处理异常   }   返回列表;   }      公共静态List>listKeyMaps(字符串jsonString) {   List>列表=new ArrayList> ();   尝试{   Gson Gson=new Gson ();=gson.fromJson列表(jsonString,   新的TypeToken>在(){   } . gettype ());   }捕捉(异常e) {//TODO:处理异常   }   返回列表;   }   }

json怎样解析