編輯:關於android開發
做個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項目:手機安全衛士(16)—— 復雜 ListView淺析
Android項目:手機安全衛士(16)—— 復雜 ListView淺析 Android項目:手機安全衛士(16)—— 復雜 ListView 1
Android合並兩個APP的具體做法(掌握)
Android合並兩個APP的具體做法(掌握) 有時候因公司需求,要求合並兩個APP 使用裡面的功能。 平台:Studio 小白鼠:二維碼掃描 和自己項目
android網絡請求庫volley方法詳解,androidvolley
android網絡請求庫volley方法詳解,androidvolley使用volley進行網絡請求:需先將volley包導入androidstudio中 File下的P
android listview 替代品recyclerview詳解,recyclerview使用詳解
android listview 替代品recyclerview詳解,recyclerview使用詳解安卓v7支持包下的ListView替代品—&mdash