把 TObjectList 序列化为 JSON

C#开发中,将List<Object>中的数组序列化为JSON格式以便保存或传输数据是一项常见的任务 C#开发中,将List中的数组序列化为JSON格式以便保存或传输数据是一项常见的任务。反之,将JSON字符串反序列化为对象列表也是经常需要处理的情况。反之,如果我们有一个JSON字符串,想要将其反序列化为List对象,可以使用JsonConvert.DeserializeObject()方法。在这个例子中,我们使用JsonConvert.DeserializeObject()方法将之前序列化的JSON字符串json转换为List对象。接下来,我们定义一个包含多个属性的类,它将作为List中的元素。 阅读详情
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, System.Generics.Collections;

type
  TMyClass = class
  private
    FName: string;
    FValue: Integer;
  public
    property MyName: string read FName write FName;
    property MyValue: Integer read FValue write FValue;
  end;

  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses System.JSON.Serializers;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  AList: TObjectList<TMyClass>;
  Seri: TJsonSerializer;
  MyObj: TMyClass;
begin
  //序列化 ObjectList 为 JSON
  AList := TObjectList<TMyClass>.Create;

  MyObj := TMyClass.Create;
  MyObj.FName := 'aaa';
  MyObj.FValue := 100;
  AList.Add(MyObj);

  MyObj := TMyClass.Create;
  MyObj.FName := '吃饭啦';
  MyObj.FValue := 110;
  AList.Add(MyObj);

  MyObj := TMyClass.Create;
  MyObj.FName := 'ccc';
  MyObj.FValue := 120;
  AList.Add(MyObj);

  Seri := TJsonSerializer.Create;

  Memo1.Text := Seri.Serialize<TObjectList<TMyClass>>(AList);

  AList.Free;
  Seri.Free;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  Seri: TJsonSerializer;
  AList: TObjectList<TMyClass>;
  JSON: string;
  i: Integer;
begin
  //反序列化 JSON 为 ObjectList
  JSON := Memo1.Lines.Text;
  Seri := TJsonSerializer.Create;
  AList := Seri.Deserialize<TObjectList<TMyClass>>(JSON);

  for I := 0 to Pred(AList.Count) do
  begin
    Memo1.Lines.Add(AList[i].FName + ': ' + AList[i].FValue.ToString);
  end;

  Seri.Free;
  AList.Free;
end;


end.

以前测试过使用 TJson.ObjectToJsonString 和 TJson.JsonToObject,发现好像有 BUG,不稳定。

这次测试的是使用 TJsonSerializer, 测试没发现问题。

C#中List集合转换JSON 首先,我们创建了包含书籍信息的Book类。然后使用System.Text.Json.JsonSerializer类的Serialize方法将List对象序列化为JSON字符串,并通过Deserialize方法实现JSON字符串的反序列化。通过以上步骤,我们成功将List集合转换为JSON格式,并且能够进行JSON字符串的反序列化,实现了数据在C#中与JSON格式之间的互相转换。接下来,我们可以使用System.Text.Json.JsonSerializer类将List对象转换为JSON格式的字符串。 阅读详情

相关推荐

22、Delphi服务器开发:JSON处理、HTTP请求及RESTful接口实现

本文详细介绍了Delphi服务器开发中JSON处理、HTTP请求发送和RESTful接口的实现方法。通过TJSONUtils类实现对象与JSON的相互转换,使用TREST组件发送POST请求,并基于DMVC框架构建符合REST架构风格的Web服务接口,支持CRUD操作与数据分页。文章涵盖从环境配置、业务对象设计到控制器与数据模块实现的完整流程,强调代码模块化与可复用性,最后提出组件选择建议与未来优化方向,为Delphi后端开发提供了系统性实践指南。

palm99的专栏 87

TList与TObjectlist之间的区别。

TList(Classes.pas) TObjectList(Contnrs.pas) TObjectList: constructor Create; overload; constructor Create(AOwnsObjects: Boolean); overload; If theOwnsObjectsproperty is set totrue(the default),TObjectList controls the memory of ...

shimingzeLGD的博客 419

Delphi 13.1 64位控件合集:生产级VCL组件实战指南

VCL控件是Windows桌面应用开发的核心基础组件,其64位兼容性直接决定Delphi项目在Win11及现代硬件上的部署可行性。原理上需满足PE头签名验证、IDE集成实测与运行时内存安全三重标准,技术价值在于规避WOW64桥接、GDI+崩溃、COM泄漏等典型陷阱,支撑高分辨率图像处理、百万行数据网格、大文件分片上传等企业级场景。本文聚焦Delphi 13.1环境下真实可用的23个经产线验证的64位VCL控件,涵盖TcxGrid64、TPictureBoxEx、TADO64Connection等关键组件,并

weixin_32183107的博客 275

Delphi容器类之---TList、TObjectList、TComponentList、TClassList的使用

转载自:http://blog.youkuaiyun.com/iseekcode/article/details/4922001 从Delphi5开始VCL中增加了新的Contnrs单元,单元中定义了8个新的类,全部都是基于标准的TList类。 TList                          TList类实际上就是一个可以存储指针的容器类,提供了一系列的方法和属性来

ghs79的专栏 2332

delphi对象集Tobjectlist

delphi对象集Tobjectlist

Shopee App加密算法逆向实战:从libshpssdk.so到x-sap-ri的生成机制

本文详细解析了Shopee App核心加密参数x-sap-ri的生成机制。通过逆向分析libshpssdk.so动态库,揭示了其采用9套算法动态切换的复杂签名逻辑,并分享了从抓包定位、Frida动态调试到Unidbg模拟执行的全过程实战经验,为移动应用安全研究提供了完整的技术路径。

weixin_29323551的博客 1328

Delphi容器类之---TList、TStringList、TObjectList,以及一个例程的代码分析

看了这里标题,大家可能以为我会谈TListBox控件,那就错了。我要谈的是Delphi提供给我们的具有列表性质的类:TStringList、TList和TObjectList。TStringList用来存放字符串,TList存放指针,而TObjectList则存放对象(Object)   在我们使用Delphi的过程中,有很多数据的存储是要靠 数组解决的。虽然Delphi现在已经支持了可变数

技术资料收集站 6774

饥荒Mod 开发(二):Mod目录结构

饥荒中的每个Mod 都有一些固定的目录结构,各个目录的放着不同类型的文件。动画,图片,源代码等。我们最好是遵守Mod 开发中的各个目录结构,我用的是WeGame 安装的饥荒游戏,Mod 目录如下,这个目录下保存所有订阅的Mod。

小乖写代码 4628

DataSnap对象传递

比较简单的方法: 1.引用DBXJSON, DBXJSONReflect 假设有一个类: type TKid = class FirstName: String; LastName: String; Age: Integer; BornDate: TDateTime; class function CreateAndInitial...

weixin_30929195的博客 202

扫地机器人全场景测试实战:从实验室到真实家庭的可靠性验证

本文深入探讨了扫地机器人从实验室到真实家庭的全场景测试方法,揭示了软硬件测试中的关键挑战。通过分析场景化测试的重要性,文章详细介绍了硬件耐久性、软件稳定性和环境适应性三大测试维度,并提供了真实家庭测试的实用方法论。消费者可重点关注清洁率、覆盖率等核心指标,同时了解测试工程师的私房建议,帮助选择更可靠的扫地机器人产品。

hhh00的博客 1076

Elsevier投稿避坑指南:Ocean Engineering论文格式要求详解(附Checklist模板)

本文详细解析Elsevier旗下期刊Ocean Engineering的投稿格式要求与常见陷阱,提供实用的Checklist模板。涵盖文章类型确认、作者贡献声明、图表规范、数据声明等关键环节,帮助研究者高效通过格式审查。特别强调LaTeX排版细节、图表分辨率要求及现代伦理声明规范,助力海洋工程领域学者顺利投稿。

weixin_33734785的博客 1495

TList类

TList类 标签: integerdelphifunctioninsertclassconstructor 2012-05-08 09:59 1401人阅读 评论(0) 收藏 举报 原文地址:http://blog.youkuaiyun.com/xiaokexinger/article/details/1637677 TList 类 TList 类实际上就是一个可以存储

chinajobs的专栏 3263

【SAP HANA 24】HANA与Oracle SQL语法对照表

HANA SQL参考及Oracle 语法对照

探索 Java 编程的技巧、最佳实践和解决方案。本博客提供针对 Java 开发者的实用指南,涵盖从基础到高级话题,旨在提升编程效率和技能。 1422

TObjectList

AOwnsObjects = true 就是 objectlist释放的时候,里面的对象一并释放。 TObjectList对象的创建方法有一个参数:constructor TObjectList.Create(AOwnsObjects: Boolean);从字面就可理解其意义:拥有对象集与否。帮助文档:If the OwnsObjects property is set to...

weixin_30457881的博客 371

YOLO26一文弄懂 | YOLO26内容详解、网络结构解读 、yolo26.yaml配置文件详细解读与说明、YOLO26虚拟环境安装、模型训练、验证、推理参数详细解析 | 通俗易懂!入门必看系列!

YOLO26目标检测模型创新与应用指南 本文全面介绍了YOLO26目标检测模型的创新特性、网络结构及实践应用。YOLO26基于四大核心原则设计:简洁性(移除NMS后处理)、部署效率(端到端架构)、训练创新(MuSGD优化器)和任务优化(支持多种视觉任务)。模型包含五种尺寸规格,CPU推理速度提升43%,支持目标检测、实例分割、姿态估计等任务。 文章详细解析了YOLO26的网络结构(Backbone-Neck-Head三部分)和yaml配置文件,提供了从虚拟环境配置到模型训练、验证、推理的完整教程。

Ai缝合怪、助力小伙伴高效发论文 2万+

11. 使用 HTTP PUT, PATCH 以及 MERGE 请求消费 SAP ABAP OData 服务修改操作的实现及其区别

使用 SAP ABAP SEGW 事物码实现 OData 服务的修改操作时,对于消费端通过 PATCH/MERGE 和 PUT 这三种不同类型的 HTTP 请求触发的场景,我们应该在 UPDATE_ENTITY 方法里用 IF 分支分别进行处理,原因就在于 GET_ENTITY 方法是否在修改处理逻辑的过程中被触发。......

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2460

Delphi TObjectList TList 的Sort用法

一、这里就只写下TObjectList的例子 TObjectList <T> 、TList<T>相同 1.需要自己定义一个函数,让sort对其进行回调 //用string类作为例子(可以替换为自己定义的类) const 是必要的修饰词 function MyComparerFunc(const s1,s2: string): Integer; begin Result := CompareText(s2, s1); //Result := -CompareText(...

zxl_1996的博客 2460

畅游Diffusion数字人(20):FLAME代码解读与实现

​ 之前的博客《畅游Diffusion数字人(17):更强大的人脸和表情表达方法 FLAME:Learning a model of facial shape and expression》讲解了FLAME的原理,这篇博客主要讲解一下FLAME的代码实现。

沉迷单车的追风少年 1131

Delphi小谈之TList/TobjectList/TstringList篇

【转】Delphi小谈之TList/TobjectList/TstringList 篇 Delphi提供给我们的具有列表性质的类:TstringList、TList和TObjectList。TstringList用来存放字符串,TList存放指针,而TObjectList则存放对象(Object)。在我们使用Delphi的过程中,有很多数据的存储是要靠数组解决的。虽然Delphi现在已经支持了可变

Qiu@SmileToLife的博客 2000

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

delphi中TObjectList删除对象

TObjectList删除对象,内存泄露

rznice的专栏 6341

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

delphi 组件容器TObjectList代替List

delphi 组件容器TObjectList代替List  TObjectList objList-&gt;delete(0); 这个会释放第0行元素的对象 class TTabFormInfo { public: int a; String s1; String s2; TFor...

weixin_34122604的博客 380

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

如何将List列表转化为JSON

如何将List列表转化为JSON

mzp520lf的博客 9302

将list序列化为json

package cn.itcast.domain; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import java.util.ArrayList; import java.util.List; public class Province { private int id; private String n

hkm的博客 743

python list json 序列化

这样,我们成功实现了列表与JSON之间的转换,并在学生信息管理系统中具有实际应用场景。通过以上示例,我们展示了如何在Python中实现列表与JSON格式之间的序列化和反序列化操作。我们将学生信息列表序列化为JSON格式保存到文件中,并能够从JSON文件中读取数据后反序列化为Python列表。将Python列表对象序列化为JSON格式并保存到文件中,以及从JSON文件中读取数据后进行反序列化处理。在Python中,我们经常需要将数据结构如列表(List)序列化为JSON格式,这在数据交换和存储中非常常见。

牛肉胡辣汤 1075

java json将list序列化,.net 将List序列化成Json字符串

将List类型转化为Json,是我们平常开发时最常见的了。在使用中,有很多种方法,也可以使用。第一种 第三方组件:Newtonsoft.Json.dll//转化成JsonNewtonsoft.Json.JsonConvert.SerializeObject(obj);//反序列化Newtonsoft.Json.JsonConvert.DeserializeObject(string);注意:版本更...

weixin_39540704的博客 603

Delphi 实现JSON序列化和反序列化的功能以及源码探究

Delphi 中处理JSON序列化和反序列化的两种方式,以及效率对比。

longchanghua_enshi的专栏 2091
上一篇: Delphi 调用 DLL 里面的 C 函数传递字符串
下一篇: Delphi 的 DataSetProvider.Options 里面的 poCascadeUpdates 修改嵌套表的主键
pcplayer
博客等级 码龄26年 633粉丝 284原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值