在下面的請求正文中,每個學生的值“questionOne”、“questionTwo”等的數量會發生變化。如何動態生成請求正文以適應鍵和值的變化值。
樣品申請一
"quiz": {
"name":"Jacob",
"sid": "STD_500",
"questionOne":"",
"questionTwo":""
}
樣品要求二
"quiz": {
"name":"Annie",
"sid": "STD_200",
"questionOne":"",
"questionTwo":""
"questionThree":"",
"questionFour":""
}
資料類:
data class Quiz (
val name : String?,
val sid : String?,
val questions: HashMap<String, String>?
)
uj5u.com熱心網友回復:
根據您的描述,這是后端的錯誤設計決定您應該有一個引數問題,您將在其上傳遞這樣的問題類串列
首先創建一個單獨的資料類 Question
data class Question (
val key:String,
val value:String)
比在這樣的請求模型中將此資料類的串列設定為問題型別引數
data class Quiz (
val name : String?,
val sid : String?,
val questions:List<Question>
)
我假設您正在使用 Gson 庫將資料類轉換為 json,反之亦然
給定情況的解決方案是為您發送給 BE 的每個問題創建單獨的請求模型,
但我強烈建議不要這樣做,讓后端人員改變你的 api 的作業方式
uj5u.com熱心網友回復:
這些問題應該在一個 json 陣列中。例子:
"quiz": {
"name":"Jacob",
"sid": "STD_500",
"questions" : [
{"key": "questionOne", "value": ""},
{"key": "questionTwo", "value": ""},
]
}
uj5u.com熱心網友回復:
我想唯一的方法是將測驗定義為一個HashMap
而不是一個Quiz
物件。我猜你現在有一個RequestBody
像這樣的地方?
data class RequestBody(
val quiz: Quiz
)
然后將其更改為
data class RequestBody(
val quiz: HashMap<String,String>
)
但這是一種糟糕的設計,我建議與后端一起解決 Tornike 的回答所提出的解決方案
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/445726.html
上一篇:如何使用AndroidNavigation將資料傳遞到上一個片段?[復制]
下一篇:Redux沒有在反應中更新狀態