📜  将JsonToKotlin插件与Android Studio集成

📅  最后修改于: 2021-05-10 14:43:01             🧑  作者: Mango

Android Studio是用于Android开发的最佳IDE。提供了许多插件,可以通过Android Studio本身轻松安装它们。在计算中,插件是将特定特征添加到现有计算机程序的软件组件。当程序支持插件时,它将启用自定义。插件是提高生产率和整体编程体验的好方法。⁣⁣有些任务很无聊,而且不那么有趣,通过使用android studio中的插件,您可以在更短的时间内完成更多工作。我们将在本文中看到的一个这样的插件是“ JsonToKotlin插件”。

关于JsonToKotlin插件

JSON到kotlin类的插件是从JSON字符串创建Kotlin数据类的插件,换句话说,是将JSON字符串更改为Kotlin数据类的插件。这样,您可以以编程方式从JSON字符串生成Kotlin数据类。支持(几乎)各种JSON库注释(Gson,Jackson,Fastjson,MoShi和LoganSquare,kotlinx.serialization(默认自定义值))。一些重要功能包括:

  • 自定义自己的注释
  • 使用默认值初始化属性
  • 允许属性为可空(?)
  • 自动确定属性为空
  • 选择目标JSON库注释时,将字段名称重命名为camelCase样式。
  • 将Kotlin类生成为单个类
  • 将Kotlin类生成为内部类
  • 格式化任何合法的JSON字符串
  • 当JSON键为原始类型时生成映射类型
  • 仅在需要时创建注释
  • 自定义定义数据类父类
  • 按字母顺序排序属性顺序
  • 使关键字属性有效
  • 支持从粘贴程序/本地文件/ HTTP URL加载JSON
  • 支持通过扩展模块自定义自己的插件
  • 普通班支持
  • 动态插件加载支持
  • 支持从JSONArray生成ListClass
  • 复杂的JSON模式支持

JSON转换为Kotlin是Kotlin开发人员的绝佳工具,它可以将JSON字符串转换为Kotlin数据类。该工具不仅可以理解原始类型,还可以自动创建复杂类型。它很容易访问。我们提供Windows快捷键映射ALT + KMac快捷键+ K,尝试一下,您将爱上它! JsonToKotlinClass只是使编程更令人愉快。

安装JsonToKotlin插件

步骤1:转到“文件”>“设置”>“插件”>“搜索jsontokotlin” ,如下图所示。

步骤2:按安装按钮

步骤3:获取插件后,请点击“安装”按钮进行安装。然后选择项目位置,然后右键单击该文件夹,从JSON中选择New> Kotlin数据类文件(如下图所示)

步骤4:然后代替JSON设置,提供要转换的JSON。在我们的示例中,让我们给出用于汇率的JSON示例输出,如下图所示

给出并生成文件后,我们可以看到生成了2个文件,如下图所示。这里生成两个数据类。

ExchangeRates ”是数据类,仅是我们指定的名称。如果我们检查JSON输出并生成数据类“ ExchangeRates”,则所有列名都将

  • base->字符串数据类型,
  • 日期->字符串数据类型,
  • 汇率->汇率数据类型,
  • time_last_updated-> int数据类型

创建起来非常容易。

Kotlin
// JSON to kotlin conversion is 
// easier with JSONToKotlin plugin
data class ExchangeRates(
    val base: String,
    val date: String,
    val rates: Rates,
    val time_last_updated: Int
)


Kotlin
// In JSON, below are the currencies 
// available and they are presented here
data class Rates(
    val AED: Double,
    val ARS: Double,
    val AUD: Double,
    val BGN: Double,
    val BRL: Double,
    val BSD: Int,
    val CAD: Double,
    val CHF: Double,
    val CLP: Double,
    val CNY: Double,
    val COP: Double,
    val CZK: Double,
    val DKK: Double,
    val DOP: Double,
    val EGP: Double,
    val EUR: Double,
    val FJD: Double,
    val GBP: Double,
    val GTQ: Double,
    val HKD: Double,
    val HRK: Double,
    val HUF: Double,
    val IDR: Double,
    val ILS: Double,
    val INR: Double,
    val ISK: Double,
    val JPY: Double,
    val KRW: Double,
    val KZT: Double,
    val MVR: Double,
    val MXN: Double,
    val MYR: Double,
    val NOK: Double,
    val NZD: Double,
    val PAB: Int,
    val PEN: Double,
    val PHP: Double,
    val PKR: Double,
    val PLN: Double,
    val PYG: Double,
    val RON: Double,
    val RUB: Double,
    val SAR: Double,
    val SEK: Double,
    val SGD: Double,
    val THB: Double,
    val TRY: Double,
    val TWD: Double,
    val UAH: Double,
    val USD: Int,
    val UYU: Double,
    val ZAR: Double
)


而且由于存在许多“费率”,仅是全球所有可用货币的汇率值,因此已经使用另一个数据类创建了该“费率”。

科特林

// In JSON, below are the currencies 
// available and they are presented here
data class Rates(
    val AED: Double,
    val ARS: Double,
    val AUD: Double,
    val BGN: Double,
    val BRL: Double,
    val BSD: Int,
    val CAD: Double,
    val CHF: Double,
    val CLP: Double,
    val CNY: Double,
    val COP: Double,
    val CZK: Double,
    val DKK: Double,
    val DOP: Double,
    val EGP: Double,
    val EUR: Double,
    val FJD: Double,
    val GBP: Double,
    val GTQ: Double,
    val HKD: Double,
    val HRK: Double,
    val HUF: Double,
    val IDR: Double,
    val ILS: Double,
    val INR: Double,
    val ISK: Double,
    val JPY: Double,
    val KRW: Double,
    val KZT: Double,
    val MVR: Double,
    val MXN: Double,
    val MYR: Double,
    val NOK: Double,
    val NZD: Double,
    val PAB: Int,
    val PEN: Double,
    val PHP: Double,
    val PKR: Double,
    val PLN: Double,
    val PYG: Double,
    val RON: Double,
    val RUB: Double,
    val SAR: Double,
    val SEK: Double,
    val SGD: Double,
    val THB: Double,
    val TRY: Double,
    val TWD: Double,
    val UAH: Double,
    val USD: Int,
    val UYU: Double,
    val ZAR: Double
)

高级功能

  • 一个人可以自定义自己的注释

  • 可以使用默认值初始化属性
  • 可以允许属性为空
  • 可以自动确定属性为空

  • 选择目标JSON库注释时,可以将属性名称重命名为camelCase样式。
  • 可以生成Kotlin类作为单独的类
  • 可以生成Kotlin类作为内部类
  • 可以格式化任何合法的JSON字符串
  • 当JSON键为原始类型时,可以生成Map Type。
  • 只能在需要时创建注释。
  • 自定义定义数据类父类
  • 按字母顺序排序属性顺序
  • 使关键字属性有效
  • 支持从粘贴程序/本地文件/ HTTP URL加载JSON
  • 支持通过扩展模块自定义自己的插件

让我们再考虑一个例子

JSON档案:

检查高级选项:

结果科特林课:

因此,通过使用惊人的“ JSONToKotlin”插件,可以将任何有效格式的JSON轻松转换为Kotlin数据类。对您的发展非常有帮助。高级属性有助于使用可用选项将JSON转换为kotlin,因此在开发中非常有用。

想要一个节奏更快,更具竞争性的环境来学习Android的基础知识吗?
单击此处,前往由我们的专家精心策划的指南,以使您立即做好行业准备!