как создать модель данных для этого { «слова»: [3,4,5] } json в kotlin

#java #android #api #kotlin #datamodel

#java #Android #API #kotlin #datamodel

Вопрос:

Я пытался написать модель данных для отправки JSON в API и удаления некоторых полей. JSON должен содержать идентификатор некоторых слов, и он должен выглядеть точно так :

 {
"words":[3,4,5]
}

  

насколько я знаю, а также как https://jsonformatter.org / сказал, что класс данных должен быть чем-то вроде следующего фрагмента кода:

 data class words(var id: List<Int>)

  

но проблема в том, что когда я передаю ему данные и проверяю, является ли это допустимым запросом JSON для сервера, результат будет таким :

 words(id=[1,2,4,5])

  

и это не то, что должно быть.
как я уже сказал, мне это нужно :

 {
"words":[3,4,5]
}

  

Комментарии:

1. Во-первых, однако вы создаете свой Toast , а не генерируете JSON. Во-вторых, ваше имя свойства должно быть words , а не id .

2. каким должно быть имя класса данных?

3. и если поджаривание не является хорошим способом убедиться, что окончательный json — это то, что мне нужно, так как я могу его протестировать?

4. мне нужно выяснить, что мне передать для модернизации

5. «каким должно быть имя класса данных?» — это может быть все, что вы хотите. «и если поджаривание не является хорошим способом убедиться, что окончательный json — это то, что мне нужно, так как я могу его протестировать? » — проблема не в Toast этом. Проблема в том, что вы, похоже, просто вызываете toString() объект. toString() не создает JSON, XML, CSV, HTML и т.д. Если вы правильно настроили Retrofit, он преобразует ваш объект в JSON для вас.

Ответ №1:

Я думаю, что должно сработать следующее.

 data class AnyNameYouWant(val words: List<Int>)
  

Я думаю, что имя класса данных действительно не имеет значения, поскольку оно в конечном итоге будет представлять { } объектный синтаксис json.

Глядя в комментарии, я думаю, что лучше использовать какую-нибудь библиотеку ведения журнала, такую как Timber. Если вы используете Retrofit, то use также может использовать HttpLoggingInterceptor и установить уровень Body , который будет печатать тело ответа в logcat.