HarmonyOS NEXT应用开发实战:一分钟写一个网络接口,JsonFormat插件推荐

在开发鸿蒙操作系统应用时,网络接口的实现往往是一个繁琐且重复的过程。为了提高开发效率,坚果派(nutpi.net)特别推出了一个非常实用的插件——JsonFormat。这款插件的主要功能是将JSON格式的数据直接转换为arkts的结构定义,让我们在编写接口时能够更加轻松快捷。

JsonFormat插件介绍

JsonFormat插件可以极大地简化鸿蒙应用开发中的数据处理过程。通过这个插件,开发者只需简单操作,即可将JSON转化为对应的鸿蒙ets类,减少手动编写代码的时间,提高工作效率。

插件地址:JsonFormat插件

如何安装JsonFormat插件

  1. 通过Jetbrains Marketplace安装

    1. 打开DevEco Studio,导航至Settings/Preferences > Plugins > Marketplace
    2. 在搜索框中输入“JsonFormat”,然后进行安装。
  2. 本地jar安装

    如果在Marketplace中无法找到该插件,可以选择手动安装:

    1. Settings/Preferences > Plugins > Setting中,选择Install plugin from Disk
    2. 选择下载的插件jar文件并进行安装。

如何使用JsonFormat插件

使用JsonFormat插件,将JSON数据转换为鸿蒙ets类的过程非常简单,具体步骤如下:

1. Json2ets

  • 步骤
    1. 手动新建一个类文件,如User.ets
    2. 调用Generate,选择Json2ets
    3. 在弹出的输入框中粘贴对应的JSON,确认后即可生成对应的ets model文件。

2. Json2etsFile

  • 步骤
    1. 在指定目录上右键,选择Convert Json to Ets
    2. 在弹出的输入框中粘贴对应的JSON,并填写ets文件的名字,确认后即可生成相应的ets文件。

3. JavaBean2ets

  • 步骤
    1. 在指定的JavaBean类(以.java结尾的文件)上右键。
    2. 从弹出的菜单中选择JavaBean2ets
    3. 在二级菜单中选择对应操作:保存到文件、复制到剪贴板、在编辑框中修改任意操作。

通过以上简单的步骤,就可以快速完成从JSON到鸿蒙ets文件的转换,大大节省了开发时间。

一分钟写完接口使用举例

假如有以下接口:

### 开发者列表获取
POST https://openatom.atomgit.com/api/developer/recommend_list
Content-Type:application/json
X-ATOMGIT-POP-COMMUNITY:openatom

{
    "pageSize": 2,
    "pageNum": 1,
    "isSelected": 0
}

如何在DevStudio中, 用时一分钟写完这个接口呢?
首先拿到该接口响应的json报文:

{
  "code": 200,
  "msg": "成功",
  "data": {
    "records": [
      {
        "nickname": "shetianlang",
        "photo": "https://file.atomgit.com/uploads/user/default.png",
        "userId": "677024fa328a782f18201665",
        "username": "shetianlang",
        "profile": "",
        "jump": "https://atomgit.com/shetianlang",
        "isFocus": false,
        "focusButtonDisabled": false,
        "warehouseList": []
      },
      {
        "nickname": "zhangzz0123",
        "photo": "https://file.atomgit.com/uploads/user/default.png",
        "userId": "676d18a2ade4166a13b033af",
        "username": "zhangzz0123",
        "profile": "",
        "jump": "https://atomgit.com/zhangzz0123",
        "isFocus": false,
        "focusButtonDisabled": false,
        "warehouseList": []
      }
    ],
    "total": 462,
    "size": 2,
    "current": 1,
    "pages": 231
  }
}

然后打开devstudio,新建一个UserList.ts 文件,再使用这个插件:
在这里插入图片描述
自动生成了以下定义:

export interface UserListResp {
  code: number;
  msg: string;
  data: UserListRespData;
}
export interface UserListRespDataRecords {
  nickname: string;
  photo: string;
  userId: string;
  username: string;
  profile: string;
  jump: string;
  isFocus: boolean;
  focusButtonDisabled: boolean;
  warehouseList: object[];
}
export interface UserListRespData {
  records: UserListRespDataRecords[];
  total: number;
  size: number;
  current: number;
  pages: number;
}

接下来就可以写接口啦:

import { UserListResp } from '../bean/UserList';
// 获取开发者列表
export const getUserList = (pageNum:number,pageSize:number): HttpPromise<UserListResp> => axiosClient.post({url:'/developer/recommend_list',data:{pageSize:pageSize,pageNum:pageNum}});

至此,一个接口写完啦,是不是很简单?

小结

JsonFormat插件是鸿蒙应用开发的一大助力,为开发者提供了高效、便捷的方式来处理JSON数据。无论您是新手还是经验丰富的开发者,这个插件都将成为您开发过程中的得力助手。赶快试试吧,将您的开发效率提升到新的高度!

如需获取更多资料或具体操作步骤,您可以访问以下链接,了解最新版本和更新信息:

  • Jetbrains仓库地址
  • Atomgit
  • Gitee
  • 坚果派

希望这篇博文能帮助您在HarmonyOS NEXT应用开发中更加得心应手!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/944667.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Unity-Editor扩展显示文件夹大小修复版 FileCapacity.cs

实战中是这样的,大项目, 容易定位美术大资产 (原版的代码有问题,每次点运行都会卡顿,大项目20S) //但其实获整个项目内容,1G都没有,有够省的(10年前的中型项目,一直有出DLC) using System; using System.Collections; using System.Collections.Generic; using Sy…

LLM 应在时间序列和语言交叉领域的其他任务应用

Are Language Models Actually Useful for Time Series Forecasting? OneFitsAll、Time - LLM、LLaTA “Are Language Models Actually Useful for Time Series Forecasting?” 探讨了语言模型在时间序列预测中的应用效果。研究通过对三种基于 LLM 的预测方法进行消融实验,…

链路聚合

链路聚合 目的&#xff1a;备份链路以及提高链路带宽。 链路聚合技术&#xff08;Eth-Trunk&#xff09;&#xff1a;将多个物理接口捆绑成一个逻辑接口&#xff0c;将N条物理链路逻辑上聚合为一条逻辑链路。 正常情况下&#xff0c;想要配置链路聚合 1、A设备通过多条链路连接…

IDEA设置作者信息 日期等

file -> setting 或 ctrl alt s找到如下 然后添加注释即可 可以直接编辑5处的文字&#xff0c;在 author 后放自己的名字即可 /*** author 你的名字* date ${DATE} ${TIME})*/当然 整体不止这些 &#xff0c;看下面的描述中&#xff0c;还有很多其他选项 也可以 4 这…

Lumos学习王佩丰Excel第二十三讲:饼图美化与PPT图表

一、双坐标柱形图的补充知识 1、主次坐标设置 2、主次坐标柱形避让&#xff08;通过增加两个系列&#xff0c;挤压使得两个柱形挨在一起&#xff09; 增加两个系列 将一个系列设置成主坐标轴&#xff0c;另一个设成次坐标轴 调整系列位置 二、饼图美化 1、饼图美化常见设置 …

五、CentOS7/CentOS8安装APISIX(1)

目录 &#x1f33b;&#x1f33b; 一、 Apache APISIX介绍1.1 什么是Apache APISIX1.2 APISIX架构1.3 Apache APISIX 的技术优势1.4 APISIX‌应用场景 二、APISIX快速开始2.1 centos7/centos8安装APISIX 一、 Apache APISIX介绍 1.1 什么是Apache APISIX Apache APISIX 是一个…

SpringBoot(Ⅱ-2)——,SpringBoot版本控制,自动装配原理补充(源码),自动导包原理补充(源码),run方法

SpringBoot的版本控制是怎么做的 starter版本控制 SpringBoot的核心父依赖&#xff0c;下面导入的所有starter依赖都不需要指定版本&#xff0c;版本默认和spring-boot-starter-parent的parent版本一致&#xff1b; xxxstarter内部jar包依赖的版本管理&#xff0c;starter自…

数据结构-map和set

一&#xff0c;二叉搜索树 搜索树的特点&#xff1a; 若它的左子树不为空&#xff0c;则左子树上所有节点的值都小于根节点的值 。若它的右子树不为空&#xff0c;则右子树上所有节点的值都大于根节点的值 。它的左右子树也分别为二叉搜索树 实现一棵搜索树&#xff08;链式…

JavaScript甘特图 dhtmlx-gantt

背景 需求是在后台中&#xff0c;需要用甘特图去展示管理任务相关视图&#xff0c;并且不用依赖vue&#xff0c;兼容JavaScript原生开发。最终使用dhtmlx-gantt&#xff0c;一个半开源的库&#xff0c;基础功能免费&#xff0c;更多功能付费。 甘特图需求如图&#xff1a; 调…

SQLite本地数据库的简介和适用场景——集成SpringBoot的图文说明

前言&#xff1a;现在项目普遍使用的数据库都是MySQL&#xff0c;而有些项目实际上使用SQLite既足矣。在一些特定的项目中&#xff0c;要比MySQL更适用。 这一篇文章简单的介绍一下SQLite&#xff0c;对比MySQL的优缺点、以及适用的项目类型和集成SpringBoot。 1. SQLite 简介 …

python编译环境安装

一、安装pycharm 下载pycharm-professional-2022.2.5.exe, 根据网上找的破解安装方法进行安装&#xff0c;然后激活。 二、安装python 启动pycharm创建第一个工程时会要求选择python解释器版本&#xff0c;并自动安装。默认安装路径为&#xff1a; C:\Users\Administrator\…

仓颉编程笔记1:变量函数定义,常用关键字,实际编写示例

本文就在网页版上体验一下仓颉编程&#xff0c;就先不下载它的SDK了 基本围绕着实际摸索的编程规则来写的 也没心思多看它的文档&#xff0c;写的不太明确&#xff0c;至少我是看的一知半解的 文章提供测试代码讲解、测试效果图&#xff1a; 目录 仓颉编程在线体验网址&…

学习记录—正则表达式-基本语法

正则表达式简介-《菜鸟教程》 正则表达式是一种用于匹配和操作文本的强大工具&#xff0c;它是由一系列字符和特殊字符组成的模式&#xff0c;用于描述要匹配的文本模式。 正则表达式可以在文本中查找、替换、提取和验证特定的模式。 本期内容将介绍普通字符&#xff0c;特殊…

剑指Offer|LCR 014. 字符串的排列

LCR 014. 字符串的排列 给定两个字符串 s1 和 s2&#xff0c;写一个函数来判断 s2 是否包含 s1 的某个变位词。 换句话说&#xff0c;第一个字符串的排列之一是第二个字符串的 子串 。 示例 1&#xff1a; 输入: s1 "ab" s2 "eidbaooo" 输出: True 解…

# 光速上手 - JPA 原生 sql DTO 投影

前言 使用 JPA 时&#xff0c;我们一般通过 Entity 进行实体类映射&#xff0c;从数据库中查询出对象。然而&#xff0c;在实际开发中&#xff0c;有时需要自定义查询结果并将其直接映射到 DTO&#xff0c;而不是实体类。这种需求可以通过 JPA 原生 SQL 查询和 DTO 投影 来实现…

区块链安全常见的攻击合约和简单复现,附带详细分析——不安全调用漏洞 (Unsafe Call Vulnerability)【6】

区块链安全常见的攻击分析——不安全调用漏洞 Unsafe Call Vulnerability 区块链安全常见的攻击合约和简单复现&#xff0c;附带详细分析——不安全调用漏洞 (Unsafe Call Vulnerability)【6】1.1 漏洞合约1.2 漏洞分析1.3 攻击步骤分析1.4 攻击合约 区块链安全常见的攻击合约和…

MVCC实现原理以及解决脏读、不可重复读、幻读问题

MVCC实现原理以及解决脏读、不可重复读、幻读问题 MVCC是什么&#xff1f;有什么作用&#xff1f;MVCC的实现原理行隐藏的字段undo log日志版本链Read View MVCC在RC下避免脏读MVCC在RC造成不可重复读、丢失修改MVCC在RR下解决不可重复读问题RR下仍然存在幻读的问题 MVCC是什么…

FFmpeg 4.3 音视频-多路H265监控录放C++开发二十一.4,SDP协议分析

SDP在4566 中有详细描述。 SDP 全称是 Session Description Protocol&#xff0c; 翻译过来就是描述会话的协议。 主要用于两个会话实体之间的媒体协商。 什么叫会话呢&#xff0c;比如一次网络电话、一次电话会议、一次视频聊天&#xff0c;这些都可以称之为一次会话。 那为什…

【Go】:Sentinel 动态数据源配置指南

前言 在现代微服务架构中&#xff0c;流量控制是确保系统高可用性和稳定性的关键。Sentinel 是一款由阿里巴巴开源的流量控制组件&#xff0c;它不仅支持熔断降级和流量整形&#xff0c;还能通过动态数据源&#xff08;如本地文件或 Nacos&#xff09;加载规则&#xff0c;从而…

VM虚拟机配置ubuntu网络

目录 桥接模式 NAT模式 桥接模式 特点&#xff1a;ubuntu的IP地址与主机IP的ip地址不同 第一部分&#xff1a;VM虚拟机给ubuntu的网络适配器&#xff0c;调为桥接模式 第二部分&#xff1a;保证所桥接的网络可以上网 第三部分&#xff1a;ubuntu使用DHCP&#xff08;默认&…