Android Json解析Kotlin
阿新 • • 發佈:2017-07-06
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