#android #json #kotlin #retrofit #okhttp
Вопрос:
Не знаю, как я могу это объяснить, я искал 9 часов и, наконец, мне нужна помощь.
{"session_permit":{ "sessionID":"sessionID", "participantID":0, "timestamp":0, "signature":"somethinglongstring" }}
это то, что я сделал, и мне не нужен «session_permit».
Что мне нужно, так это :
{ "sessionID":"sessionID", "participantID":0, "timestamp":0, "signature":"somethinglongstring" }
Я закончил удалять данные «namevaluepairs» в JSONObject, но не смог удалить основное имя на нем. Я должен отправить тип данных : JSONObject на сервер, и когда я делаю это с помощью JSONObject, всегда добавляется «SessionID».
Я поместил это для отправки запроса на сервер.
interface TalkJoinCredentialsApiInterface
{
@POST("Prod/channel/join/Test")
@Headers("Content-type: application/json",
"Accept: */*")
fun joinCredentialData(
@Body requestData : TalkJoinCredentialsRequestData
) : Call<TalkJoinCredentialsResponseData>
}
class TalkJoinCredentialsRequestData(
var session_permit : JsonObject
)
var jsonObject = JsonObject()
jsonObject.addProperty("sessionID", session_permit.sessionID)
jsonObject.addProperty("participantID", session_permit.participantID)
jsonObject.addProperty("timestamp", session_permit.timestamp)
jsonObject.addProperty("signature", session_permit.signature)
var requestData = TalkJoinCredentialsRequestData(jsonObject)
Комментарии:
1. Ваш вопрос неясен. Вы получаете объект с
session_permit
помощью и пытаетесь получить доступ к внутреннему JSON, или вы пытаетесь отправить этот объект? Если вы пытаетесь отправить его в описанном вами формате, вам, вероятно, следует определитьTalkJoinCredentialsRequestData
class TalkJoinCredentialsRequestData(val sessionID: String, val participantID: Int, val timestamp: Int, val signature: String)
его как сериализованный так, как вы ожидаете.2. хотите использовать JSONObject без
session_permit
. Я пытаюсь отправить его на сервер. будет ли лучше отправлять по разделенному аргументу?3. черт возьми, да, мой вопрос был супер идотом, и вы помогли мне, это был правильный путь, спасибо вам большое!!!!!!!!!!!!!! @MrMikimn
4. Подумайте о том, чтобы проголосовать за мой комментарий, если вы почувствовали, что это вам помогло 🙂
5. как я могу проголосовать за комментарий?! хочу дать тебе 10000 голосов!!! Я почти новый аккаунт, так что найду, как проголосовать, комментарий жди меня!
Ответ №1:
вероятно, вам следует определить TalkJoinCredentialsRequestData как
class TalkJoinCredentialsRequestData(val sessionID: String, val participantID: Int, val timestamp: Int, val signature: String)
таким образом, он сериализуется так, как вы ожидаете.
Ответ №2:
Ты можешь сделать вот так :
var newJson = json.session_permit
Комментарии:
1. не знаю, для чего это. Это для нового JSONObject???