结构体序列为JSON
结构体序列为JSON
本例运行效果图:
uses
SynCommons;
const /// JSON字符串
JSON1 =
'{' + #13#10 + '"glossary": {' + #13#10 + '"title": "中国",' + #13#10
+ ' "GlossDiv": {' + #13#10
+ '"title": "湖南省",' + #13#10
+ ' "GlossList": {' + #13#10
+ '"GlossEntry": {' + #13#10
+ '"ID": "湘乡市",' + #13#10
+ ' "SortAs": "SGML",' + #13#10
+ ' "GlossTerm": "Standard Generalized Markup Language",' + #13#10
+ ' "Acronym": "SGML",' + #13#10
+ ' "Abbrev": "ISO 8879:1986",' + #13#10
+ ' "GlossDef": {' + #13#10
+ '"para": "A meta-markup language, used to create markup languages such as DocBook.",' + #13#10
+ ' "GlossSeeAlso": ["咏南中间件", "XML"]' + #13#10
+ '},' + #13#10
+ ' "GlossSee": "markup"' + #13#10 + '}'
+ #13#10 + '}' + #13#10
+ '}' + #13#10
+ '}' + #13#10
+ '}';
type // 记录
TGlossary = record
glossary: record
title: string;
GlossDiv: record
title: string;
GlossList: record
GlossEntry: record
ID, SortAs, GlossTerm, Acronym, Abbrev: string;
GlossDef: record
para: string;
GlossSeeAlso: array of string;
end;
GlossSee: string;
end;
end;
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
gloss: TGlossary;
json: RawUTF8;
begin
json := JSON1;
RecordLoadJSON(gloss, @json[1], TypeInfo(TGlossary)); // JSON还原为结构体
Memo1.Clear;
Memo1.Lines.Add(gloss.glossary.title); // 中国
Memo1.Lines.Add(gloss.glossary.GlossDiv.title); // 湖南省
Memo1.Lines.Add(gloss.glossary.GlossDiv.GlossList.GlossEntry.ID); // 湘乡市
Memo1.Lines.Add(gloss.glossary.GlossDiv.GlossList.GlossEntry.GlossDef.GlossSeeAlso[0]); // 咏南中间件
json := '';
json := RecordSaveJSON(gloss, TypeInfo(TGlossary)); // 结构体序列为JSON
Memo1.Text := json;
end;
转载于:https://www.cnblogs.com/hnxxcxg/p/8793599.html
结构体序列为JSON相关推荐
- mormot数据库连接+查询+序列为JSON
mormot数据库连接+查询+序列为JSON uses SynDB,SynCommons, SynDBRemote, SynOleDB, SynDBMidasVCL, mORMotMidasVCL p ...
- golang 学习(二十四)结构体struct 和 json之间的转换
结构体struct 和 json之间的转换 import ("encoding/json""fmt""math/rand""tes ...
- Go 知识点(04)— 结构体字段转 json格式 tag 标签的作用
我们知道在 Go 语言中无论是变量.常量还是函数,对于首字母大小写有不同的处理. 首字母大写,标志着该字段或者函数是能导出的,也就是可以被其它包所能访问的: 首字母小写,标志着该字段是私有的,只能在本 ...
- golang 结构体 map 转化为 json
目录 结构体生成json json转成结构体 map生成json json转化为map 结构体生成json package mainimport ("encoding/json"& ...
- go语言中结构体与json
go语言中使用Marshal函数实现结构体json化,需要有一下两点注意 因为json化是在其他函数中完成,因此需要将结构体中的成员大写,这样才能在生成的结构体中有对应的元素 在结构体后面,如果有需要 ...
- Go语言进阶,结构体与json字符串格式的互相转换
对于结构体大家都很熟悉,是一种自定义类型,可以将不同类型的同属于这个类的属性(成员变量)集合在一起,换句话说这些成员变量属于键值对,那么这种也就是常见的json格式,我们来看下如何将结构体转成json ...
- golang 结构体struct、数组、结构体数组 定义与赋值 、json string转struct
文章目录 1.结构体struct 1.1 声明结构体 1.2 初始化结构体 以及 传参 2. 结构体数组.append 3. 接口返回 含数组的结构体 常用写法 json string转struct ...
- Qt_C++JSON转结构体
文章目录[隐藏] Qt_C++++JSON 转结构体前言 Qt_C++++JSON 转结构体需求说明 Qt_C++++JSON 转结构体代码说明 Qt_C++++JSON 转结构体最终实现效果 Qt_ ...
- go var type 互转_Go语言学习笔记(第九章) 结构体
Go语言基础之结构体 Go语言中没有"类"的概念,也不支持"类"的继承等面向对象的概念.Go 通过类型别名(alias types)和结构体的形式支持用户自定义 ...
最新文章
- 元素序列几个常用排序算法:一
- trimmomatic对fastq质控
- Notes客户端重新配置批处理
- C/C++内存分配方式 .
- android studio新建layout,【Android Studio安装部署系列】十六、Android studio在layout目录下新建子目录...
- ots在线考计算机的word,ots在线考试系统1(OTS online examination system 1).doc
- 杭州2019年计算机技校招生,杭州电子信息职业学校2020年招生录取分数线
- CPU不支持非地址对齐访问的原因
- sql2018 ssas_如何使用SQL Server Analysis Services(SSAS)从头开始构建多维数据集
- cvs的console输出含义
- jsarraybufferdaya释放_聊聊JS的二进制家族:Blob、ArrayBuffer和Buffer
- dialogfield
- Vue webpack打包后,css样式发生改变或不起作用
- 【转】The C10K problem(翻译 中文版)
- 【蓝牙】设备管理器找不到蓝牙
- linux DSA 开发上手笔记(一)
- google服务框架 闪退_华为的谷歌服务打不开怎么办?
- python有理数_Python3标准库:fractions有理数
- iOS 一一 frame和Bounds 以及frame和bounds区别
- 用前端框架开发一款APP要多少钱
热门文章
- 【小知识点】解决Chrome动画”卡顿”的办法
- Proguard混淆代码(1)
- [转载]VC6下安装STLport-5.2.1
- 怎么去除桌面图标显示快捷方式字样?
- JavaScript面向对象中的严格模式
- ssm整合(基于xml配置方式)
- 【云栖大会】基因计算:解读生命的力量
- 错误:因为相同类型的其他实体已具有相同的主键值。在使用 Attach 方法或者将实体的状态设置为 Unchanged 或 Modified 解决方法...
- sudo及其配置文件sudoers
- 2014 I/O归来:Google连接一切