簡體   English   中英

如何解析JSON對象內部的嵌套數組

[英]How to parse nested array insided a json object

所以我在laravel中制作了一個api,它返回了如下響應:

{
    "message": "The given data was invalid.",
    "errors": {
        "email": [
            "The email has already been taken."
        ],
        "mobile": [
            "The mobile has already been taken."
        ]
    }
}

有人可以告訴我如何從錯誤中獲取特定值嗎?

您可以創建代表錯誤json的模型,然后使用Gson對其進行解析。 這是一些簡短的例子。

data class Errors(
    val email: List<String>,
    val phone: List<String>
)

data class YourErrorModel(
    val message: String,
    val errors: Errors
)

fun parseError(response: Response<*>): YourErrorModel? {
    val errorBody = response.errorBody()?.string() ?: return null //No error body present
    return Gson().fromJson(errorBody, YourErrorModel::class.java)
}

另外,不要忘記在響應中處理可為空的類型。 我建議您僅返回字符串,而不返回數組,如果這是字段的確切錯誤。

這個怎么樣 :

JSONObject errorObject = yourJSONObject.optJSONObject("errors");
if (errorObject != null){
    JSONArray emailMsgArray = errorObject.getJSONArray("email");
    JSONArray mobileMsgArray = errorObject.getJSONArray("mobile");

    String emailMsg= emailMsgArray.getString(0);
    String mobileMsg= mobileMsgArray .getString(0);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM