【问题标题】:Create a kotlin code to modify and generate a json file创建kotlin代码修改生成json文件
【发布时间】:2020-11-08 08:33:18
【问题描述】:

在进一步之前,我一直在尝试这个工作但失败了,现在花了一个星期我才知道在这里我可以问...如果有人有空闲时间然后只阅读下面否则​​忽略但做请不要标记并告诉我这是否不可能,请忽略我的无知:/

我需要一个 kotlin 代码来创建一个 json 文件,其中-

[
  {
    "url": "https://drive.google.com/uc?export=view&id=",
    "copyright": "Protected by copyright, DO NOT USE FOR COMMERCIAL PURPOSES",
    "collections": "album1"
  },
]

上面是一个容器或原型,我需要它做的是-

运行代码后,它会询问我“enter all ids”,当我输入任意数量的 id 时,例如我输入 844656565, 65648451,如果我输入 2 个 id,它应该复制已经输入的 sn-p 2 次,如果我输入 3 个 id 并在第一行末尾的 view&id= 之后添加 id,则 3 次。

例如,如果我输入 7777、8888 那么它应该使用以下代码创建一个 json 文件-

[
      {
        "url": "https://drive.google.com/uc?export=view&id=",
        "copyright": "Protected by copyright, DO NOT USE FOR COMMERCIAL PURPOSES",
        "collections": "album1"
      },
{
        "url": "https://drive.google.com/uc?export=view&id=7777",
        "copyright": "Protected by copyright, DO NOT USE FOR COMMERCIAL PURPOSES",
        "collections": "album1"
      },
 {
        "url": "https://drive.google.com/uc?export=view&id=8888",
        "copyright": "Protected by copyright, DO NOT USE FOR COMMERCIAL PURPOSES",
        "collections": "album1"
      }
    ]

【问题讨论】:

    标签: json android-studio kotlin


    【解决方案1】:

    如果您要针对 JVM 或 Android,您可以使用 Jackson 数据绑定。

    1. 将其添加为依赖项。 (毕业生:dependencies { implementation("com.fasterxml.jackson.core:jackson-databind:2.11.1") }
    2. 创建一个类来描述这个模型。
    data class Song(val url: String, val copyright: String, val collections: String)
    
    1. 创建函数来序列化/反序列化此类。
    import com.fasterxml.jackson.databind.ObjectMapper
    
    data class Song(val url: String, val copyright: String, val collections: String)
    
    private val mapper by lazy { ObjectMapper() }
    
    fun songsFromString(source: String) = mapper.readValue(source, Array<Song>::class.java)!!
    fun songsToString(songs: Array<Song>) = mapper.writeValueAsString(songs)!!
    

    使用这个类和函数来创建你期望的行为并不难。

    【讨论】:

      猜你喜欢
      • 2012-06-29
      • 1970-01-01
      • 1970-01-01
      • 2016-11-04
      • 1970-01-01
      • 2017-02-27
      • 1970-01-01
      • 2010-12-29
      • 1970-01-01
      相关资源
      最近更新 更多