1. 程式人生 > >Android Json解析Kotlin

Android Json解析Kotlin

style any ray code 鍵值 first aaa use text

  

  1. 首先講一下什麽是Json--下面的就是Json基本格式,其實就是一個鍵值對。

{ "people": [

{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },

{ "firstName": "Jason", "lastName":"Hunter", "email": "bbbb"},

{ "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }

]}



  2.

package Util

import com.example.jason_jan.guangdamiao.bean.Person

import org.json.JSONArray import org.json.JSONException import org.json.JSONObject import java.util.ArrayList import java.util.HashMap /** * Created by Jason_Jan on 2017/7/5. */ class JsonUtil { companion object { /** * 獲取對象數據 * @param key * * * @param
jsonString * * * @return */ fun getPerson(key: String, jsonString: String): Person { val person = Person() try { val jsonObject = JSONObject(jsonString) val personObject = jsonObject.getJSONObject(key) person.UserID
= personObject.getString("UserID")//這裏看情況修改 } catch (e: JSONException) { e.printStackTrace() } return person } /** * 獲取對象數組數據 * @param key * * * @param jsonString * * * @return */ fun getPersons(key: String, jsonString: String): List<Person> { val list = ArrayList<Person>() try { val jsonObject = JSONObject(jsonString) //返回json的數組 val jsonArray = jsonObject.getJSONArray(key) for (i in 0..jsonArray.length() - 1) { val jsonObject2 = jsonArray.getJSONObject(i) val person = Person()//這裏看情況修改 list.add(person) } } catch (e: JSONException) { e.printStackTrace() } return list } /** * 獲取String數組數據 * @param key * * * @param jsonString * * * @return */ fun getList(key: String, jsonString: String): List<String> { val list = ArrayList<String>() try { val jsonObject = JSONObject(jsonString) val jsonArray = jsonObject.getJSONArray(key) for (i in 0..jsonArray.length() - 1) { val msg = jsonArray.getString(i) list.add(msg) } } catch (e: JSONException) { e.printStackTrace() } return list } /** * 獲取對象的Map集合數據 * @param key * * * @param jsonString * * * @return */ fun getListMap(key: String, jsonString: String): List<Map<String, Any>> { val list = ArrayList<Map<String, Any>>() try { val jsonObject = JSONObject(jsonString) val jsonArray = jsonObject.getJSONArray(key) for (i in 0..jsonArray.length() - 1) { val jsonObject2 = jsonArray.getJSONObject(i) val map = HashMap<String, Any>() val iterator = jsonObject2.keys() while (iterator.hasNext()) { val json_key = iterator.next() var json_value: Any? = jsonObject2.get(json_key) if (json_value == null) { json_value = "" } map.put(json_key, json_value) } list.add(map) } } catch (e: JSONException) { e.printStackTrace() } return list } } }

  2.使用方法,非常簡單。在handler中調用

  如var person:Person--這裏聲明一個Person類

  person=JsonUtil.getPerson("Json返回的關鍵字",HttpUtil中得到的內容)

   txt1.text=person.toString()--txt1是布局中的一個textView  


 3.其實Json解析一般都要和Http掛鉤,仔細琢磨,你會收獲很多。

  

Android Json解析Kotlin