資料存放區(三)--JSON資料處理
JSON是一種輕量級的資料交換格式,具有良好的可讀和便於快速編寫的特性,從而可以在不同平台間進行資料交換。JSON採用相容性很高的文本格式,同時也具備類似於C語言體系的行為。JSON可以將Java對象轉成json格式的字串,可以將json字串轉換成Java。比XML更輕量級,Json使用起來比較輕便和簡單。JSON資料格式,在Android中被廣泛運用於用戶端和伺服器通訊,在網路資料轉送與解析時非常方便。
JSONObject--這是系統中有關JSON定義的基本單元,其包含一對兒(Key/Value)數值。
JSONArray--它代表一組有序的數值。將其轉換為String輸出(toString)所表現的形式是用方括弧包裹,數值以逗號”,”分隔(例如:[value1,value2,value3]
JSONStringer--這個類可以協助快速和便捷的建立JSONtext。其最大的優點在於可以減少由於格式的錯誤導致程式異常,引用這個類可以自動嚴格按照JSON文法規則(syntaxrules)建立JSON text。每個JSONStringer實體只能對應建立一個JSON text。
JSONTokener--json解析類
JSONException--json中用到的異常
下面以資料存放區(二)中的Book對象用Json格式轉為String
public static String ObjectToJsonString(List books) throws JSONException{JSONStringer stringer = new JSONStringer();stringer.object();stringer.key("books");stringer.array();for(int i=0;i
String 轉為Book對象
public static List jsonStringToObject(String str) throws JSONException{List books = new ArrayList();JSONTokener jsonTokener = new JSONTokener(str);JSONObject jsonObject = (JSONObject) jsonTokener.nextValue();JSONArray array =jsonObject.getJSONArray("books");for(int i =0;i註:getXXX()可以將要擷取的鍵的值轉換為指定的類型,如果無法轉換或沒有值則拋出JSONException
optXXX()也是將要擷取的鍵的值轉換為指定的類型,無法轉換或沒有值時返回使用者提供或這預設提供的值