Android之JSON解析

來源:互聯網
上載者:User

標籤:

  做個Android網路編程的同學一定對於JSON解析一點都不陌生,因為現在我們通過手機向伺服器請求資源,伺服器給我們返回的資料資源一般都是以JSON格式返回,當然還有一些通過XML格式返回,相對JSON格式,XML格式的資料在處理時相對比較繁瑣,並且Android為我們提供了兩個解析JSON對象的類:JSONObject與JSONArray這兩個對象可以很好的滿足我們的需求,JSONArray對象可以以數組的形式將資料返回到手機,JSONObject對象則可以以對象的形式將資料為我們封裝好返回,手機接收都這兩種資料後,通過解析,可以很方便的使用,大大的方便了我們的開發學習。

  當然在使用JSONObject進行資料解析時,有兩種方式,一種通過索引值對的形式一個一個的取資料;另一種就是將JSONObject解析為具體的對象,然後通過對象的get、set方法進行資料的讀取與操作,對於第一種方式,相信剛接觸JSON解析的小童鞋都是這樣乾的,相對第一種方式,第二種方式更加的簡單方便,下面我們就一起學習一下如何?將JSONObject對象轉化為具體的對象吧。

  因為今天我們要探討的是關於JSONObject的解析,所以我就通過一個簡單的對象建立--對象封裝--對象解析--對象操作,為大家介紹一下如何進行JSONObject向具體對象的轉化。
  首先我們的對象類(user):

public class User {        private String id;    private String name;    private String from;        public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getFrom() {        return from;    }    public void setFrom(String from) {        this.from = from;    }        @Override    public String toString() {        return "User [id=" + id + ",name=" + name + ",from=" + from +"]";    }}

  這裡我重寫了對象的toString方法,這裡一定要注意返回參數的格式:類名+‘[‘+參數名+‘=‘+參數+.....+‘]‘

  下面就是我們的對象建立與解析了:

  1、JSONObject對象解析類:

//JSONObject解析類public class JsonParseToObject {    public Object AllJsonParseToObject(String json, String packageAddress) {        Object parseObject = null;        try {            parseObject = JSON.parseObject(json, Class.forName(packageAddress));        } catch (ClassNotFoundException e) {            e.printStackTrace();        }        return parseObject;    }    }

  2、JSON對象的建立與解析:

public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        TextView text = (TextView) findViewById(R.id.hw);                //將我們的對象屬性封裝都JSONObject中        JSONObject jo = new JSONObject();        jo.put("id", "16");        jo.put("name", "小了");        jo.put("from", "河南");        String str = jo.toString();        Toast.makeText(this, str, Toast.LENGTH_LONG).show();                //對JSONObject對象進行解析        User u = (User) new JsonParseToObject().AllJsonParseToObject(jo.toString(), "com.example.jsontoobject.User");                //判斷JSONObject對象解析是否正確        if(u != null){            text.setText(jo.toString()+"\nid:"+u.getId()+";name:"+u.getName()+";from:"+u.getFrom());//進行對象操作        }else{            text.setText("User == null");        }    }}

  布局檔案很簡單就是一個文字框,用來顯示解析後的資料。

  

  好了到這裡我們關於JSONObject解析的知識就為大家介紹完畢,沒用過這種方式的小夥伴可以嘗試一下,還是挺方便的,如果你有更好的方式,還望交流學習。

Android之JSON解析

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.