HarmonyOS开发实战:JSON组件使用方式-API

 JSON类组件

模块介绍
JSONValue提供eftool中的JSON相关对象的类型定义
JSONObject提供类Java的JSON对象的系列方法以及相互转换
JSONArray提供类Java的JSON数组的系列方法以及相互转换
JSONArrayList提供类Java的JSON数组的系列方法以及相互转换
JSONUtil提供JSON转换一系列判断方法,废弃一部分方法

JSON组件使用API

1.JSONValue的解释
  • 定义了JSON相关类的value的取值范围
2.JSONObject的方法
  • parse json字符串转换为JSONObject对象
let userList = new Array<User>();userList.push(new User('2345', '测试用户1'));userList.push(new User('7844', '测试用户2'));let person = new Person('测试', 12, true, new Date(), new User("uuid", "打撒吃的是草动次打次"), userList);let j = JSONObject.toJSONString(person);let f = JSONObject.parse(j);
  • parseObject json字符串转换为实体对象
let userList = new Array<User>();userList.push(new User('2345', '测试用户1'));userList.push(new User('7844', '测试用户2'));let person = new Person('测试', 12, true, new Date(), new User("uuid", "打撒吃的是草动次打次"), userList);let j = JSONObject.toJSONString(person);let o = JSONObject.parseObject<Person>(j);
  • toJSONString Object对象换为json字符串
  let userList = new Array<User>();userList.push(new User('2345', '测试用户1'));userList.push(new User('7844', '测试用户2'));let person = new Person('测试', 12, true, new Date(), new User("uuid", "打撒吃的是草动次打次"), userList);let j = JSONObject.toJSONString(person);
  • from 实体对象转换为JSONObject对象
 let userList = new Array<User>();userList.push(new User('2345', '测试用户1'));userList.push(new User('7844', '测试用户2'));let person = new Person('测试', 12, true, new Date(), new User("uuid", "打撒吃的是草动次打次"), userList);let j = JSONObject.from<Person>(person);
  • toString 将本对象转换成json字符串
let jsonObj = new JSONObject();jsonObj.set("id", "100010");jsonObj.set("age", 27);jsonObj.set("sex", true);jsonObj.set("birth", new Date());let user = new JSONObject();user.set("uid", "121212");user.set("uName", "测试\\\"套对象");jsonObj.set("user", user);jsonObj.set("test", null);jsonObj.set("person", new User('实体id', '实体name'));jsonObj.set("name", "test字符串");let st = jsonObj.toString();
点击领取→纯血鸿蒙Next全套最新学习资料(安全链接,放心点击希望这一份鸿蒙学习资料能够给大家带来帮助,有需要的小伙伴自行领取~~
3.JSONArray的方法
  • parse json字符串转换为JSONArray对象
 let userList = new Array<User>();userList.push(new User('2345', '测试用户1'));userList.push(new User('7844', '测试用户2'));userList.push(new User('1314', '测试用户3'));userList.push(new User('5210', '测试用户4'));let s = JSONArray.toJSONString(userList);let jsArr = JSONArray.parse(s);
  • toJSONString 集合对象转换为json字符串
let userList = new Array<User>();userList.push(new User('2345', '测试用户1'));userList.push(new User('7844', '测试用户2'));userList.push(new User('1314', '测试用户3'));userList.push(new User('5210', '测试用户4'));let s = JSONArray.toJSONString(userList);
  • from 实体集合转换为JSONArray对象
let userList = new Array<User>();userList.push(new User('2345', '测试用户1'));userList.push(new User('7844', '测试用户2'));userList.push(new User('1314', '测试用户3'));userList.push(new User('5210', '测试用户4'));let jarr = JSONArray.from(userList);
  • toString 将本对象转换成json字符串
let arr = new JSONArray();arr.push(1);arr.push("cccc");arr.push("123");arr.push("aaaaa\\\"34343434");arr.push("2223\"dasdass");arr.push(new Date());arr.push(true);arr.push(null);arr.push(new User("10010", "实体数据"));let str = arr.toString();
  • parseArray json字符串转换为实体对象集合(1.1.12+)
class TestDDD {threeMonthRate?: string;moduleName?: string;productName?: string;marketPatter?: string;labelListJson?: site;}class site {site1?: site1;}class site1 {labelType?: string;labelValue?: string;labelName?: string;labelLocation?: string;}let str1 = '[{"threeMonthRate":null,"moduleName":"loan","productName":"网E贷","marketPatter":"随借随还,最高20万,利率低至8折起","labelListJson":{"site1":{"labelType":0,"labelValue":"网E贷","labelName":"产品名称:123","labelLocation":true}}},{"threeMonthRate":null,"moduleName":"loan","productName":"烟草贷","marketPatter":"无需抵押,无需担保,当天放款,随借随还","labelListJson":{"site1":{"labelType":12,"labelValue":"烟草贷","labelName":"产品名称","labelLocation":false}}}]';let array = JSONArray.parseArray<TestDDD>(str1);array.forEach(item => {this.msg += item.labelListJson?.site1?.labelName + " ";})
4.JSONArrayList的方法
  • parse json字符串转换为JSONArrayList对象
 let userList = new ArrayList<User>();userList.add(new User('2345', '测试用户1'));userList.add(new User('7844', '测试用户2'));userList.add(new User('1314', '测试用户3'));userList.add(new User('5210', '测试用户4'));let s = JSONArrayList.toJSONString(userList);let jsArr = JSONArrayList.parse(s);
  • toJSONString 集合对象转换为json字符串
 let userList = new ArrayList<User>();userList.add(new User('2345', '测试用户1'));userList.add(new User('7844', '测试用户2'));userList.add(new User('1314', '测试用户3'));userList.add(new User('5210', '测试用户4'));let s = JSONArrayList.toJSONString(userList);
  • from 实体集合转换为JSONArrayList对象
 let userList = new ArrayList<User>();userList.add(new User('2345', '测试用户1'));userList.add(new User('7844', '测试用户2'));userList.add(new User('1314', '测试用户3'));userList.add(new User('5210', '测试用户4'));let jarr = JSONArrayList.from(userList);
  • toString 将本对象转换成json字符串
let arr = new JSONArrayList();arr.add(1);arr.add("cccc");arr.add("123");arr.add("aaaaa\\\"34343434");arr.add("2223\"dasdass");arr.add(new Date());arr.add(true);arr.add(null);arr.add(new User("10010", "实体数据"));let str = arr.toString();
  • parseArrayList json字符串转换为实体对象集合(1.1.12+)
 class TestDDD {threeMonthRate?: string;moduleName?: string;productName?: string;marketPatter?: string;labelListJson?: site;}class site {site1?: site1;}class site1 {labelType?: string;labelValue?: string;labelName?: string;labelLocation?: string;}let str1 = '[{"threeMonthRate":null,"moduleName":"loan","productName":"网E贷","marketPatter":"随借随还,最高20万,利率低至8折起","labelListJson":{"site1":{"labelType":0,"labelValue":"网E贷","labelName":"产品名称:123","labelLocation":true}}},{"threeMonthRate":null,"moduleName":"loan","productName":"烟草贷","marketPatter":"无需抵押,无需担保,当天放款,随借随还","labelListJson":{"site1":{"labelType":12,"labelValue":"烟草贷","labelName":"产品名称","labelLocation":false}}}]';let array = JSONArrayList.parseArrayList<TestDDD>(str1);array.forEach(item => {this.msg += item.labelListJson?.site1?.labelName + " ";})
5.JSONUtil的方法
  • toJSONString 将传入的json对象格式化成json字符串,第二个参数为如果数据有日期类型时是否传入转换格式,不传默认为yyyy-MM-dd
let userList = new Array<User>();userList.push(new User('2345', '测试用户1'));userList.push(new User('7844', '测试用户2'));let person = new Person('测试', 12, true, new Date(), new User("uuid", "打撒吃的是草动次打次"), userList);//第二个参数为如果数据有日期类型时是否传入转换格式,不传默认为yyyy-MM-ddlet str1 = JSONUtil.toJSONString(person,DateConst.YMD_HLINE_HMS);
  • parse 将传入的json字符串格式化为Object对象
 let person = new Person('测试', 12, new Date(), new User("101291021", "打撒吃的是草动次打次"));let str = JSONUtil.toJSONString(person);console.log(str)JSONUtil.parse(str);
  • parseObject 将传入的json字符串格式化为指定的实体对象,如果实体中有日期类型可以传入格式化format,不传默认为yyyy-MM-dd
let userList = new Array<User>();userList.push(new User('2345', '测试用户1'));userList.push(new User('7844', '测试用户2'));let person = new Person('测试', 12, true, new Date(), new User("uuid", "打撒吃的是草动次打次"), userList);//第二个参数为如果数据有日期类型时是否传入转换格式,不传默认为yyyy-MM-ddlet str1 = JSONUtil.toJSONString(person,DateConst.YMD_HLINE_HMS);let p = JSONUtil.parseObject<Person>(str1,DateConst.YMD_HLINE_HMS);
  • parseArray 将传入的json字符串格式化为指定的实体对象集合,如果实体中有日期类型可以传入格式化format,不传默认为yyyy-MM-dd
 let listStr = JSONUtil.toJSONString(userList);let uList = JSONUtil.parseArray<User>(listStr);uList.forEach(item => {Logger.error(item.id, item.name);})
  • parseStringArray 将字符串格式Array转换成Array数组

  • isBoolean 判断传入的字符串是否是布尔类型

  • isJSONStringArray 判断是否是字符串格式Array

  • isJSONString 判断是否是字符串格式json

  • isNumber 是否是字符串

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

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

相关文章

理想汽车提出3DRealCar:首个大规模3D真实汽车数据集

理想提出3DRealCar&#xff0c;这是第一个大规模 3D 实车数据集&#xff0c;包含 2500 辆在真实场景中拍摄的汽车。我们希望 3DRealCar 可以成为促进汽车相关任务的宝贵资源。 理想汽车提出3DRealCar&#xff1a;首个大规模3D真实汽车数据集! 我们精心策划的高质量3DRealCar数…

全球点赞第一起名大师颜廷利:是金子总会“花光”的

在物质世界的繁华背后&#xff0c;隐藏着一个深刻的真理&#xff1a;有形之物的分享会逐渐减少&#xff0c;而无形之物的传递却能不断增值。金钱、货币、银两这些商业领域的实体&#xff0c;往往激发出人类对更多财富的渴望和对资源枯竭的恐惧。这种恐惧源于资源的有限性&#…

【数据结构】(C语言):二叉搜索树

二叉搜索树&#xff1a; 树不是线性的&#xff0c;是层级结构。基本单位是节点&#xff0c;每个节点最多2个子节点。有序。每个节点&#xff0c;其左子节点都比它小&#xff0c;其右子节点都比它大。每个子树都是一个二叉搜索树。每个节点及其所有子节点形成子树。可以是空树。…

VRRP和IPVS

1.VRRP VRRP(Virtual Router Redundancy Protocol,简称VRRP,虚拟路由冗余协议)是一种选择协议,它可以把一个虚拟路由器的责任动态分配到局域网上的VRRP路由器中的一台。控制虚拟路由器IP地址的VRRP路由器称为主路由器,它负责转发数据包到这些虚拟IP地址。 VRRP一旦主路由…

PointNet++论文导读

PointNet论文导读 主要改进网络结构&#xff1a;非均匀采样下的特征学习的鲁棒性利用点特征传播处理数据集分割 论文链接:https://arxiv.org/abs/1612.00593 主要改进 PointNet的基本思想是学习每个点的空间编码&#xff0c;然后将所有单个点的特征聚合成一个全局点云标签&am…

Apache Ranger 2.4.0 集成hadoop 3.X(Kerbos)

1、安装Ranger 参照上一个文章 2、修改配置 把各种plugin转到统一目录&#xff08;源码编译的target目录下拷贝过来&#xff09;&#xff0c;比如 tar zxvf ranger-2.4.0-hdfs-plugin.tar.gz tar zxvf ranger-2.4.0-hdfs-plugin.tar.gz vim install.properties POLICY_MG…

防火墙防御体系结构类型

防火墙防御体系结构类型 防火墙是网络安全的核心组件&#xff0c;用于保护网络和系统免受未经授权的访问和各种网络攻击。防火墙防御体系结构类型多样化&#xff0c;每种类型都针对不同的安全需求和应用场景&#xff0c;提供不同层次的保护。以下是几种常见的防火墙防御体系结…

【车载开发系列】NXP开发环境介绍

【车载开发系列】NXP开发环境介绍 【车载开发系列】NXP开发环境介绍 【车载开发系列】NXP开发环境介绍一. 开发环境1、S32 Design Studio for S32 Platform2、S32 Design Studio for ARM3、S32 Design Studio IDE 二. NXP开发环境支持的单片机1&#xff09;Kinetis系列2&#x…

力扣3152.特殊数组 II

力扣3152.特殊数组 II 满足条件为0 &#xff0c; 不满足为1 最终如果区间和为0 则为特殊数组 class Solution {public:vector<bool> isArraySpecial(vector<int>& nums, vector<vector<int>>& queries) {int n nums.size();vector<int&…

论文阅读:Simple and Efficient Heterogeneous Graph Neural Network

Yang, Xiaocheng, Mingyu Yan, Shirui Pan, Xiaochun Ye and Dongrui Fan. “Simple and Efficient Heterogeneous Graph Neural Network.” AAAI Conference on Artificial Intelligence (2022). 论文地址&#xff1a;[PDF] Simple and Efficient Heterogeneous Graph Neural…

Java集合框架性能优化与选择指南

Java集合框架性能优化与选择指南 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 引言 Java集合框架是每位Java开发者日常工作中不可或缺的一部分。正确选择和…

Bytebase 2.20.0 - 支持为工单事件配置飞书个人通知

&#x1f680; 新功能 支持 Databricks。支持 SQL Server 的 TLS/SSL 连接。支持为工单事件配置飞书个人通知。支持限制用户注册的邮箱域名。 &#x1f514; 重大变更 将分类分级同步设置从数据库配置移至工作空间的全局配置。 SQL 编辑器只读模式下只允许执行 Redis 的只读…

着色器预热?为什么 Flutter 需要?为什么原生 App 不需要?那 Compose 呢?Impeller 呢?

依旧是来自网友的问题&#xff0c;这个问题在一定程度上还是很意思的&#xff0c;因为大家可能会想&#xff0c;Flutter 使用 skia&#xff0c;原生 App 是用 skia &#xff0c;那为什么在 Flutter 上会有着色器预热&#xff08;Shader Warmup&#xff09;这样的说法&#xff1…

【PYG】pyg里dataloader和torch中dataloader有什么不一样

torch.utils.data.DataLoader 和 torch_geometric.loader.DataLoader 是两个不同的加载器&#xff0c;它们分别用于处理不同类型的数据。以下是它们之间的主要区别&#xff1a; torch.utils.data.DataLoader torch.utils.data.DataLoader 是 PyTorch 中的通用数据加载器&…

论文1--ViT

Vision Transformer (ViT) 论文&#xff1a;https://arxiv.org/abs/2010.11929代码&#xff1a;GitHub - google-research/vision_transformer 1.背景 &#xff08;1&#xff09;transformer在NLP很强&#xff0c;但在CV的应用还非常有限&#xff0c;在此之前只有目标检测中…

【轻量化】YOLOv8 更换骨干网络之 MobileNetv4 | 《号称最强轻量化网络》

论文地址:https://arxiv.org/pdf/2404.10518 代码地址:https://github.com/tensorflow/models/blob/master/official/vision/modeling/backbones/mobilenet.py 文章速览 文章摘要 MobileNetV4引入了一个名为Universal Inverted Bottleneck (UIB) 的新搜索模块,这个模块融合…

2024年网络安全技术全景扫描:新趋势与新挑战

**# 2024年网络安全技术全景扫描&#xff1a;新趋势与新挑战 随着技术的飞速发展&#xff0c;网络安全领域在2024年迎来了新的变革。从人工智能的深入应用到零信任模型的广泛采纳&#xff0c;再到云环境、太空网络以及量子信息技术的兴起&#xff0c;这些新兴技术正在重塑网络…

民用无人机企业招标投标需要资质证书详解

一、基础资质 在民用无人机企业的招标投标过程中&#xff0c;基础资质是首要考虑的因素。这些资质通常包括企业注册资质、税务登记证、组织机构代码证等。 1.1 企业注册资质 企业应具备合法的注册资质&#xff0c;即营业执照。该执照应包含企业名称、注册地址、法定代表人、…

在Ubuntu 14.04上安装和配置Magento的方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 简介 Magento 是最流行的电子商务网站内容管理系统。它被小型企业和大型企业公司广泛使用&#xff0c;并且可以通过成千上万的扩展和主…

谈谈华为国产系列

目前借着华为发布会&#xff0c;谈谈华为的软件系列 1.鸿蒙系统 鸿蒙是手机系统&#xff0c;兼容安卓软件&#xff0c;目前华为借助国内软件公司&#xff0c;适配鸿蒙&#xff0c;即将纯血。鸿蒙系统借助这一波互联网兴起&#xff0c;没有遇到之前各种系统的麻烦之中&#xf…