当前位置: 首页 > backend >正文

XE 旧版本 JSON 处理

uses

usesDBXJSON ,DBXJSONCommon, DBXJSONREFlect;

创建

JSONObject

{"sn":1,"subject":"test","autoSign":true
}
//var jsonObj: TJSONObject;
jsonObj := TJSONObject.Create;tryjsonObj.AddPair('sn', TJSONNumber.Create(1));jsonObj.AddPair('subject', TJSONString.Create('test'));jsonObj.AddPair('autoSign', TJSONTrue.Create);finallyjsonObj.Free;
end;

TJSONArray

{"sn":1,"subject":"test","autoSign":true,"actions":[{"orderNo":1,"type":"a"},{"orderNo":2,"type":"b"}]
}
//var jsonObj, actionObj1, actionObj2: TJSONObject;
//var jsonArr: TJSONArray;
jsonObj := TJSONObject.Create;
tryjsonObj.AddPair('sn', TJSONNumber.Create(1));jsonObj.AddPair('subject', TJSONString.Create('test'));jsonObj.AddPair('autoSign', TJSONTrue.Create);jsonArr := TJSONArray.Create;actionObj1 := TJSONObject.Create;actionObj1.AddPair('orderNo', TJSONNumber.Create(1));actionObj1.AddPair('type', TJSONString.Create('a'));jsonArr.AddElement(actionObj1);actionObj2 := TJSONObject.Create;actionObj2.AddPair('orderNo', TJSONNumber.Create(2));actionObj2.AddPair('type', TJSONString.Create('b'));jsonArr.AddElement(actionObj2);jsonObj.AddPair('actions', jsonArr);finallyactionObj1.Free;actionObj2.Free;jsonArr.Free;jsonObj.Free;
end;

序列化为 JSON 字符串和反序列化

通过 ToString 方法可以将 JSON 对象序列化为 JSON 字符串,使用 ParseJSONValue 方法可以将 JSON 字符串反序列化为 JSON 对象。

varjsonObject: TJSONObject;jsonString: string;
beginjsonObject := TJSONObject.Create;tryjsonObject.AddPair('name', 'John');jsonObject.AddPair('age', TJSONNumber.Create(25));jsonString := jsonObject.ToString; // 序列化为 JSON 字符串// 反序列化 JSON 字符串为 JSON 对象jsonObject := TJSONObject.ParseJSONValue(TEncoding.ASCII.GetBytes(jsonString), 0) as TJSONObject;finallyjsonObject.Free;end;
end;

获取和设置 JSON 对象的值

使用 jsonObject.Get('name').JsonValue 时需要注意该节点必须存在,否则报错。当不确定节点是否存在时,先判断 if Assigned(jsonObject.Get('gender')) then 再赋值

varjsonObject: TJSONObject;name: string;age: Integer;
beginjsonObject := TJSONObject.Create;tryjsonObject.AddPair('name', 'John');jsonObject.AddPair('age', TJSONNumber.Create(25));// 获取值name := (jsonObject.Get('name').JsonValue as TJSONString).Value; // "John"age := (jsonObject.Get('age').JsonValue as TJSONNumber).AsInt; // 25// 设置值if Assigned(jsonObject.Get('name')) thenjsonObject.Get('name').JsonValue := TJSONString.Create('Alice');if Assigned(jsonObject.Get('age')) thenjsonObject.Get('age').JsonValue := TJSONNumber.Create(30);if Assigned(jsonObject.Get('gender')) thenjsonObject.Get('gender').JsonValue := TJSONString.Create('male');// 添加新键值对jsonObject.AddPair('gender', 'female');showmessage(jsonObject.ToString);finallyjsonObject.Free;end;
end;
http://www.xdnf.cn/news/19771.html

相关文章:

  • 使用 Uni-app 打包 外链地址APK 及 iOS 注意事项
  • K8S-基础架构
  • 离开职场2个月,后知后觉的反思。
  • 素材合集!直播间带货音乐BGM合集,抖音直播间常用热门音乐合集,根据中文分类,方便查找
  • 力扣hot100:矩阵置零(73)(原地算法)
  • 【Python语法基础学习笔记】类的定义和使用
  • WSL + VSCode + Git + Node.js 开发环境配置文档
  • python数据分析 与spark、hive数据分析对比
  • 使用pyspark对上百亿行的hive表生成稀疏向量
  • 2025年COR IOTJ SCI2区,灾后通信无人机基站位置优化和移动充电无人机路径规划,深度解析+性能实测
  • Android aoap开发常见问题之package_allowed_list.txt导致的编译报错
  • 深度学习------模型的保存和使用
  • 深度学习篇---Adam优化器
  • Docker Pull 代理配置方法
  • 【正则表达式】 正则表达式有哪些语法?
  • Low-Light Image Enhancement via Structure Modeling and Guidance 论文阅读
  • AP5414:高效灵活的LED驱动解决方案,点亮创意生活
  • go大厂真实的面试经历与总结
  • 心路历程-初识Linux用户
  • EasyExcel 基础用法
  • 如何在FastAPI中巧妙隔离依赖项,让单元测试不再头疼?
  • 一文吃透 `protoc` 安装与落地
  • 【Spring Cloud微服务】10.王子、巨龙与Spring Cloud:用注解重塑微服务王国
  • 普通人也能走的自由之路
  • 科技赋能田园:数字化解决方案开启智慧农业新篇章
  • 告别 Hadoop,拥抱 StarRocks!政采云数据平台升级之路
  • 【Maniskill】StackCube-v1 官方命令训练结果不稳定的研究报告
  • Android Looper源码阅读
  • 大数据毕业设计选题推荐-基于大数据的电商物流数据分析与可视化系统-Spark-Hadoop-Bigdata
  • SkyWalking 支持的告警通知方式(Alarm Hooks)类型