【问题标题】:how to create the data model for this { "words":[3,4,5] } json in kotlin如何在 kotlin 中为此 { "words":[3,4,5] } json 创建数据模型
【发布时间】:2021-02-25 23:30:22
【问题描述】:

我正在尝试编写一个数据模型来将 JSON 发送到 API 并删除一些字段 JSON 应该包含一些单词的 id,它应该看起来像这样:

{
"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]
}

【问题讨论】:

  • 首先,但是您创建的Toast 不会生成 JSON。其次,您的属性名称必须是words,而不是id
  • 数据类名应该是什么?
  • 如果烘烤不是确定最终 json 是否是我需要的好方法,那么我该如何测试它呢?
  • 我需要找出我将什么传递给改造
  • "数据类名应该是什么?" ——它可以是你想要的任何东西。 “如果烘烤不是确定最终 json 是否是我需要的好方法,那么我该如何测试它?”——问题不在于Toast。问题是您似乎只是在对象上调用toString()toString() 不会创建 JSON、XML、CSV、HTML 等。如果您已正确配置 Retrofit,它将为您将对象转换为 JSON。

标签: java android api kotlin datamodel


【解决方案1】:

我认为以下应该可行。

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

我认为数据类的名称并不重要,因为它最终会代表 json 的 { } 对象语法。

查看 cmets,我认为最好使用一些日志库,例如 Timber。如果您使用的是 Retrofit,那么 use 也可以使用 HttpLoggingInterceptor 并将级别设置为 Body,这将在 logcat 中打印响应的正文。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-24
    • 1970-01-01
    • 2021-04-23
    • 2023-01-03
    • 2015-11-19
    • 2023-03-08
    相关资源
    最近更新 更多