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}});

至此,一个接口写完啦,是不是很简单?
关于上面这个axiosClient怎么来的?是坚果派对axios三方库的封装(@nutpi/axios),推荐使用。
库的地址:https://ohpm.openharmony.cn/#/cn/detail/@nutpi%2Faxios

小结

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

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3中使用el-tag结合element-plus使用方法

vue3中使用el-tag结合element-plus在行内使用el-button按钮&#xff0c;带背景色&#xff0c;效果&#xff1a; 代码&#xff1a; <el-table-column label"状态" align"center" prop"states"><template #default"scope">…

如何利用无线路由器实现水泵房远程监测管理

水泵站广泛部署应用在工农业用水、防洪、排涝和抗旱减灾等方面&#xff0c;如果水泵站发生异常&#xff0c;往往会对生产生活造成诸多损失&#xff0c;甚至引发安全事故。因此&#xff0c;建立一套高效、可靠的泵站远程监测管理系统至关重要。 方案背景 目前&#xff0c;我国大…

解锁健康步姿密码:无标记点动作捕捉系统助力医疗康复

在医疗康复领域&#xff0c;精准的步态分析对于患者进行正常行走能力恢复检测起着举足轻重的作用。AI 无标记点动作捕捉系统基于先进的深度学习视觉算法&#xff0c;实现了对人体的全方位动作捕捉&#xff0c;为医疗康复步态分析提供了全新的解决方案。 无标记点动作捕捉系统在…

vue封装弹窗元素拖动指令

项目开发过程中我们通常会遇到需要到一些弹窗鼠标可以随意拖动位置去放置&#xff0c;vue里面直接通过封装对应的指令即可&#xff0c;于是封装了一个出来&#xff0c;希望可以用到。 Vue.directive(draggable-dom, draggableDom); 组件节点添加对应指令就可以 v-draggable-…

基本算法——聚类

目录 创建工程 加载数据 聚类算法 评估 完整代码 结论 相比于有监督的分类器&#xff0c;聚类的目标是从一组未打标签的数据中识别相似对象组。它可 以用于识别同类群体的代表性样本&#xff0c;找到有用与合适的分组&#xff1b;或者找到不寻常的样本&#xff0c;比如 异…

day21-ubuntu入门

小趣味docker 1.安装docker&#xff0c;从阿里云的yum yum install docker -y 2.需要提前准备好docker镜像&#xff0c;确保可用 docker -v 3.导入该游戏镜像&#xff08;先用systemctl start docker&#xff09; docker load < game_v2.tar 4.一条命令&#xff0c;在…

vue3 学习与实战

1. Vue3简介 2020年9月18日&#xff0c;Vue.js发布版3.0版本&#xff0c;代号&#xff1a;One Piece&#xff08;n 经历了&#xff1a;4800次提交、40个RFC、600次PR、300贡献者 官方发版地址&#xff1a;Release v3.0.0 One Piece vuejs/core 截止2023年10月&#xff0c;最…

Three.js滚动画案例精选

今天为大家带来 3 个基于滚动动画的网站 Demo&#xff0c;它们不仅视觉效果惊艳&#xff0c;而且每个案例的源码都已开源在 GitHub&#xff0c;方便大家学习和借鉴&#xff01; 3D照片墙滚动 通过滚动操作实现 3D 网格效果以及动态过渡动画。这个案例使用了 GSAP 的 SplitTex…

MBox20边缘计算网关助力各种数字化升级

在当今全球范围内数字化浪潮的强劲推动下&#xff0c;企业对数据处理与传输能力的需求正以前所未有的速度增长。制造业的心脏地带——工厂&#xff0c;其数字化转型已成为驱动生产效率飞跃、成本控制优化及竞争力显著提升的关键路径。在此过程中&#xff0c;明达技术MBox20边缘…

el-table动态行和列及多级表头

主页面 <template><div class"result-wrapper"><dynamic-table :table-data"tableData" :table-header"tableConfig" :tableTitle"tableTitle" :flowParams"flowParams"></dynamic-table></div…

RocketMQ(二)RocketMQ实战

文章目录 一、RocketMQ实战1.1 批量消息发送1.2 消息发送队列自选择1.3 事务消息1.4 SpringCloud集成RocketMQ 二、最佳实践2.1 生产者2.1.1 发送消息注意事项2.1.2 消息发送失败处理方式 2.2 消费者2.2.1 消费过程幂等2.2.2 消费打印日志 2.3 Broker 三、相关问题3.1 为什么要…

2-194基于matlab的四足机器人行走程序设计

基于matlab的四足机器人行走程序设计&#xff0c;正运动设计&#xff0c;逆运动学解算&#xff0c;步态设计。可定义机身高、步长、步高、一个摆相的市场等参数。输出四足机器人动态行走结果&#xff0c;及摆相示意图。程序已调通&#xff0c;可直接运行。 2-194基于matlab的四…

android studio android sdk下载地址

android studio安装后&#xff0c;因为公司网络原因&#xff0c;一直无法安装android sdk 后经过手机网络&#xff0c;安装android sdk成功如下&#xff0c;也可以手动下载后指定android sdk本地目录 https://dl.google.com/android/repository/source-35_r01.zip https://dl…

字符串和对象之间的转换

使用&#xff1a; <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.76</version> </dependency> public class Demo3 {public static void main(String[] args) {Person person …

window如何将powershell以管理员身份添加到右键菜单?(按住Shift键显示)

window如何将powershell以管理员身份添加到右键菜单&#xff1f; 在 Windows 中&#xff0c;将 PowerShell 以管理员身份添加到右键菜单&#xff0c;可以让你在需要提升权限的情况下快速打开 PowerShell 窗口。以下是详细的步骤&#xff0c;包括手动编辑注册表和使用注册表脚本…

【NebulaGraph】变化的多跳查询

【NebulaGraph】变化的多跳查询 1. 需求2. 解决方案2.1 确定查询结构2.2 构建查询语句 3. 追加需求&#xff1a;如果增加每一跳都要指定查询某SPACE下的Tag&#xff0c;或者不查询某个Tag怎么办 1. 需求 存在多跳请求&#xff0c;其中每一跳是从上一跳查询结果为基础的。但是 …

华为ensp-BGP联盟

学习新思想&#xff0c;争做新青年&#xff0c;今天学习BGP联盟 实验介绍 一个BGP联盟是一个具有内部层次结构的AS。一个BGP联盟由若干个子AS 组成&#xff0c;子AS也称为成员AS。对于一个BGP联盟&#xff0c;其成员AS内部的各路由器之间需要建立全互联的IBGP邻居关系或使用B…

内部类(3)

大家好&#xff0c;今天我们继续来看看内部类&#xff0c;今天我们来学习一下内部类的分类&#xff0c;我们来看看一共有几种&#xff0c;它们有什么作用&#xff0c;那么话不多说&#xff0c;我们直接开始。 9.1 内部类的分类 先来看下,内部类都可以在一个类的哪些位置进行定…

【Python】ftp和sftp工具类,使用python实现文件的上传与下载

文章目录 1. ftp工具类2. sftp工具类 1. ftp工具类 编写ftp工具类&#xff0c;我这里取名为 ftp_util.py import os from ftplib import FTPclass FtpUtil:def __init__(self, ip, username, password, port21):self.ip ipself.username usernameself.password passwordse…

Airbnb/Booking 系统设计(high level architecture)

原文地址 CodeKarle: Airbnb System Design | Booking.com System Design B站搜 “Airbnb System Design” 有视频版本 需求&#xff1a; 功能性需求 系统用户包括商家和客人。 Hotel - 商家&#xff08;拥有hotel的人&#xff09; onboarding - 商家可以入住系统。 update…