Json 解析对 Android 开发人员来说不要太熟悉,常规的好说,但是实际上我们会经常碰到一些非 常规格式 的 Json 数据,而且无法要求后台修改返回的格式,因此需要修改 Android 代码来适配这些数据。
首先了解一下 JSON 语法
JSON 语法规则
数据在名称/值对中:如 “firstName” : “John”
数据由逗号分隔
花括号保存对象
方括号保存数组
组成 JSON 的值
数字(整数或浮点数)
字符串(在双引号中)
逻辑值(true 或 false)
数组(在方括号中)
对象(在花括号中)
null
常规 Json 解析的格式
{
"status":
"message": "message",
"data":[]
}
上面是一个常见的 RestFul 格式的 json 数据,{} 表示这是一个 JsonObject, [] 表示这是 一个JsonArray,这时我们一般可以用一个通用的 BaseResponse 去适配,然后根据 status 返回 data 里面的数据:正确就返回数据,data 里面的数据可以用相应的 bean 类去解析;错误就返回空(注意不是 null )并得到 message 。。
什么是 JsonObject, 什么是JsonArray ?
顾名思义,JsonObject是一个用{}包裹起来的Object对象,里面是键值对,比如
{"key":"value","key":"value"},
而 JsonArray 一个用 [] 包裹起来的数组( Array 数组), 数组里面可以是JsonObject组成的 list,比如
[
{ "id" : "123", "courseID1" : "huangt-test", "title" : "提交作业" } ,
{ "id" : "124", "courseID2" : "huangt-test", "title" : "提交文档" }
]
如何使用java方法获得 JsonObject 和 JsonArray 中的数据这里不再详细说明,可以参考一下文章
-
关键点在于明白一个是
object,一个是Array.
Thanks: