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: