鸿蒙版本JsonFormat来了

4,086 阅读5分钟

前言导读

相信大家在学习鸿蒙开发过程中最痛苦的就是编写model 类 特别是那种复杂的json的时候对不对, 这时候有一个自动化的插件给你生成

model是不是很开心。我们今天要分享的就是这个插件 JsonFormat 插件是群友开发的我这里只分享安装和用法

介绍

JSON数据操作一系列插件整合体,支持 IDEA(含一系列开发者工具)、Android Studio、DevEco Studio 等等

1.JSON转成JavaBean:将JSON数据转成JavaBean类

2.JSON转成鸿蒙 .ets model:将JSON数据转成鸿蒙 ets 文件

3.JavaBean转成 鸿蒙 .ets model:将已有的JavaBean类转成 鸿蒙 ets 文件

版本更新记录

PS: plugin版本支持的IDEA、AS以及DevEco 的版本(本地引用验证正常运行)

特别注意:后缀带有 deveco 的插件版本,是单独针对 DevEco Studio 开发工具做到兼容版本,可以在DevEco Studio 中下载使用,请勿在IDEA或者AS中使用。

从 v1.0.6 版本开始,支持以上3种格式转换,也就是在IDEA、AS、DevEco 中都可以安装 1.0.6 的版本

plugin版本IDEA版本DevEco 版本AS 版本备注
v1.0.22023.3.15.0.3.403Android Studio Jellyfish 2023.3.1
v1.0.32023.3.15.0.3.403Android Studio Jellyfish 2023.3.1
v1.0.4-deveco2023.3.15.0.3.501Android Studio Jellyfish 2023.3.1已废弃
v1.0.5-deveco2023.3.15.0.3.502Android Studio Jellyfish 2023.3.1支持DevEco marketplace 直接下载
v1.0.62023.3.15.0.3.502Android Studio Jellyfish 2023.3.1支持DevEco marketplace 直接下载
---

v1.0.6

1.同 1.0.5-deveco 版本功能

2.JSON转成JavaBean、JSON转成鸿蒙 .ets model、JavaBean转成 鸿蒙 .ets model 实现三合一

v1.0.5-deveco

1.包含 v1.0.3以及以下版本的功能

2.兼容DevEco Studio 5.0.3.500 以及以上的版本

3.解决插件安装提示 Requires plugin 'com.intellij.modules.java' to be installed 问题

v1.0.4-deveco(废弃)

1.包含 v1.0.3以及以下版本的功能

2.兼容DevEco Studio 5.0.3.500+ 版本

3.解决插件安装提示 Requires plugin 'com.intellij.modules.java' to be installed 问题

v1.0.3

1.生成 ets 文件时,弹窗提示选择是否生成 set()/get() 函数

2.pop通知文案调整

v1.0.2

1.移除测试Action,兼容 上述表格 v1.0.2 相关版本

插件安装

插件下载地址

plugins.jetbrains.com/plugin/2493…

目前鸿蒙的ide 是无法直接搜索安装的 可以本地下载jar安装

image-20240731112112303

打开DevEco studio 找到setting 里面 plugins

image-20240731112210676

点击设置然后点击 Install Plugin from Disk

image-20240731112438085

然后找到我们的在电脑磁盘上面的路径 选择我们下载的插件.jar

image-20240731112557245

然后点击ok进行安装

image-20240731112615036

安装好了以后我们需要Restart IDE 重启我们的 IDE

如果使用插件

  • 将json转成鸿蒙ets

将json转成鸿蒙ets 我们手动创建一个User.ets的类 然后调用 Generate 选择 Json2ets 在弹窗框里面粘贴对应的json即可

然后确认就可以生成我们的对应的 ets model 了

1简单的json

{
    "msg": "获取数据成功",
    "code": 200
}

我们可以 鼠标右键选择 Generate 然后选择我们的 Json2ets 也可以直接快捷键按住我们的 alr + instert 键直接唤醒我们的 Json2ets

image-20240731113822585

image-20240731113754004

我们输入的我们json字符串 然后输入类名建议类名和文件名一样 然后选择class或者我们的interface 即可

image-20240731113902374

image-20240731114203150

export class User {
  msg?: string;
  code?: number;
}

2 含有嵌套的 json

{
    "msg": "获取数据成功",
    "code": 200,
    "data":{
       "username":"高桥凉介","password":"123456"
   }
}

image-20240731114443598

生成model效果

export class User2 {
  msg?: string;
  code?: number;
  data?: User2Data;
}
export class User2Data {
  username?: string;
  password?: string;
}

3含有列表的json

来看看数据结构

{
    "msg": "获取数据成功",
    "code": 200,
    "data": [
      {
        "id": 12,
        "name": "资深安卓工程师",
        "cname": "今日头条",
        "size": "D轮",
        "salary": "40K-60K",
        "username": "Kimi",
        "title": "HR",
        "page": "0"
      },
      {
        "id": 13,
        "name": "移动端架构师",
        "cname": "银汉游戏",
        "size": "B轮",
        "salary": "15K-20K",
        "username": "刘丽",
        "title": "人事主管",
        "page": "0"
      },
      {
        "id": 14,
        "name": "Java工程师",
        "cname": "37互娱",
        "size": "D轮",
        "salary": "25K-30K",
        "username": "Reiki",
        "title": "HR-M",
        "page": "0"
      },
      {
        "id": 16,
        "name": "iOS工程师",
        "cname": "银汉游戏科技公司",
        "size": "D轮",
        "salary": "15K-20K",
        "username": "马小玲",
        "title": "Java程序员",
        "page": "0"
      },
      {
        "id": 17,
        "name": "java工程师",
        "cname": "4399游戏科技有限公司",
        "size": "C轮",
        "salary": "15K-20k",
        "username": "马小玲",
        "title": "HR-M",
        "page": "0"
      }
    ]
  }

image-20240731114638216

含有列表的json生成的model

export class User3 {
  msg?: string;
  code?: number;
  data?: User3Data[];
}
export class User3Data {
  id?: number;
  name?: string;
  cname?: string;
  size?: string;
  salary?: string;
  username?: string;
  title?: string;
  page?: string;
}

最后总结:

我们可以看到无论哪种json格式的数据我们都可以用插件很好生成对应的model 这个对于我们平时开发鸿蒙的app 可以大大节省开发的时间。在这里也要感谢作者提供如此好用的插件 插件本身还支持json转javabean 也支持Javabean转鸿蒙的ets Model 这边篇幅有限我就不展开讲了。有兴趣的同学可以自己安装插件尝试。 最新鸿蒙相关的技术也可以关注坚果派

团队介绍

团队介绍:坚果派由坚果等人创建,团队由12位华为HDE以及若干热爱鸿蒙的开发者和其他领域的三十余位万粉博主运营。专注于分享HarmonyOS/OpenHarmony,ArkUI-X,元服务,仓颉,团队成员聚集在北京,上海,南京,深圳,广州,宁夏等地,目前已开发鸿蒙原生应用,三方库60+,欢迎进行课程,项目等合作。

如果需要学习更多鸿蒙的知识可以关注我B站教程

课程地址

B站课程地址:www.bilibili.com/cheese/play…

项目内容:

  • 1 常用布局组件的学习

  • 2 网络请求工具类封装

  • 3 arkui 生命周期启动流程

  • 4 日志工具类的封装

  • 5 自定义组合组件的封装

  • 6 路由导航跳转的使用

  • 7 本地地数据的缓存 以及缓存工具类的封装

  • 8 欢迎页面的实现

  • 9 登录案例和自动登录效果实现

  • 10 请求网络数据分页上拉加载 下拉刷新的实现

  • 11 list数据懒加载实现

  • 12 webview组件的使用