国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

JSON數據格式(一)

2019-11-09 16:37:02
字體:
來源:轉載
供稿:網友

JSON數據格式(一)


JSON

javaScript 對象表示法(Javascript Object Notation)。已經成為現在互聯網中數據交換格式。

Android API

Android API中有JSON解析,可以將文件、輸入流中的數據轉化為JSON對象,然后從對象中獲取JSON保存的數據內容。 Android 中org.json包下,提供JSONObject、JSONArray、JSONStringer、JSONTokener、JSONException。

Json優勢

易讀易編寫,也易于機器解析和生成。

兩種數據結構

“名稱/值”對的集合,可以被理解為對象(object),記錄(Record),結構(struct),字典(Dictionary),哈希表(HashTable),有鍵列表(Keyed list),或者掛鏈數組(Assocation arra)值的有序列表(An ordered list of values)。大部分語言里理解為數組。

JSON Object

以key/value對形式{“名稱”:值}存在的無序的jsonObject對象,鍵值對之間用“,”隔開。其中key值必須是string類型,value可以是JSONObjects、JSONArrays、Strings、Booleans、Integers、Longs、Doubles或者NULL等的任意組合。如:{“name”:”jack”}

JSON Array

有序的value的集合,數組是值(value)的有序集合,使用“[ ]”括起來,值之間用“,”逗號分隔,value可以是JSONObjects、JSONArrays、Strings、Booleans、Integers、Longs、Doubles或者NULL等的任意組合,如:{“info”:[{“name”:”jack”},{“name”:”rose”}]},{value1,value2,value3}。這些結構可以嵌套。

JSONObject與JSONArray常用的方法

JSONObject

JSONObject.put() //將值放入其中JSONObject.getXXX() //若不存在此值,則返回異常JSONObject.optXXX() //若不存在此值,則返回空字符串具體可以參照官方鏈接 http://www.android-doc.com/reference/org/json/JSONObject.html

JSONArray

JSONArray.put()JSONArray.getXXX()JSONArray.optXXX()

JSONObject對象的創建

//創建JSONObject PRivate String createJSONObject() { JSONObject object = new JSONObject(); try { object.put("name", "jack_obj"); object.put("age", 11); object.put("undergraduate", true); // object.put("salary", null); //這種輸入null值,輸出在屏幕中不顯示salary這個key鍵。 object.put("salary", JSONObject.NULL); //這個則會顯示salary這個key,還有null值 } catch (JSONException e) { e.printStackTrace(); } return object.toString(); }

JSONArray對象的創建

//創建JSONArray private String createJSONArray() { JSONArray array = new JSONArray(); array.put("jack_arr"); array.put(22); //生成JSONObject對象放入JSONArray中 JSONObject inner_obj1 = new JSONObject(); try { inner_obj1.put("name", "Alice"); inner_obj1.put("age", 34); } catch (JSONException e) { e.printStackTrace(); } JSONObject inner_obj2 = new JSONObject(); try { inner_obj2.put("name", "white"); inner_obj2.put("age", 45); } catch (JSONException e) { e.printStackTrace(); } array.put(inner_obj2); array.put(inner_obj1); return array.toString(); }

JSONObject解析

//解析JSONObject數據 private String parseJSONObject(String json) { String result = " "; try { JSONObject jsonObject = new JSONObject(json); //optString方法會在對應的key中的值不存在的時候返回一個空字符串或者返回你指定的默認值, // 但是getString方法會出現空指針異常的錯誤。 String name = jsonObject.optString("name"); // String name = jsonObject.getString("name"); String age = jsonObject.optString("age"); if (!TextUtils.isEmpty(name)) { result += "name:" + name; } if (!TextUtils.isEmpty(age)) { result += "age:" + age; } return result; } catch (Exception e) { e.printStackTrace(); } return result; }

JSONArray解析

//parseJSONObject方法是會在接下來parseJSONArray()中調用 private String parseJSONObject(JSONObject jsonObject) { String result = " "; /** * optString方法會在對應的key中的值不存在的時候返回一個空字符串或者返回你指定的默認值, * 但是getString方法會出現空指針異常的錯誤。 * */ String name = jsonObject.optString("name"); // String name = jsonObject.getString("name"); String age = jsonObject.optString("age"); if (!TextUtils.isEmpty(name)) { result += "name:" + name; } if (!TextUtils.isEmpty(age)) { result += "age:" + age; } return result; } //解析JSONArray數據 private String parseJSONArray(String array) { String result = " "; try { JSONArray jsonArray = new JSONArray(array); result = jsonArray.getString(0); result +=jsonArray.getString(1); result +=jsonArray.getString(2); for (int i = 2; i < jsonArray.length(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); result += parseJSONObject(jsonObject) + "/n/n"; // result += jsonObject.optString("jack"); } } catch (JSONException e) { e.printStackTrace(); } return result.toString(); }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 甘洛县| 晋中市| 都兰县| 哈密市| 绥阳县| 新密市| 芜湖市| 酒泉市| 万安县| 甘南县| 台江县| 辽阳市| 弥渡县| 庆阳市| 资阳市| 乐至县| 于田县| 沙田区| 临武县| 安阳市| 绥滨县| 佛山市| 泰来县| 衡阳市| 建平县| 驻马店市| 达州市| 崇文区| 普兰店市| 卫辉市| 荆门市| 台前县| 龙口市| 汝阳县| 西峡县| 白山市| 朝阳县| 康马县| 琼结县| 多伦县| 龙门县|