Retrofit 之 Json 解析

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方法获得 JsonObjectJsonArray 中的数据这里不再详细说明,可以参考一下文章

Thanks:

坚持原创技术分享,您的支持将鼓励我继续创作!