第七章 IRIS %JSON适配器快速参考

本文介绍了%JSON适配器的方法,包括%JSONExport系列方法用于类到JSON的序列化,以及%JSONImport方法用于反序列化。同时提到了%JSONFormatter用于格式化JSON内容的相关方法。文章还涵盖了类和属性参数,如%JSONENABLED、%JSONNULL等,用于控制JSON转换的行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本章提供了%JSON适配器方法、属性和参数的快速参考。本章涵盖以下主题:

  • %JSON.Adaptor方法
  • %JSON.Adaptor类和属性参数
  • %JSON.Formatter方法和属性

7.1 %JSON.Adaptor方法

这些方法提供了从JSON序列化和从JSON序列化到JSON的能力。有关更多信息和示例,请参阅“导出和导入”。

%JSONExport()

%JSON.Adaptor.%JSONExport()将启用JSON的类序列化为JSON文档,并将其写入当前设备。

   method %JSONExport(%mappingName As %String = "") as %Status

参数:

  • %mappingName(可选)-用于导出的映射的名称。基本映射由""表示,是默认值。

%JSONExportToStream()

%JSON.Adaptor.%JSONExportToStream()将启用JSON的类序列化为JSON文档并将其写入流。

   method %JSONExportToStream(ByRef export As %Stream.Object, 
      %mappingName As %String = "") as %Status

参数:

  • export-包含序列化JSON文档的流。
  • %mappingName(可选)-用于导出的映射的名称。基本映射由""表示,是默认值。

%JSONExportToString()

%JSON.Adaptor.%JSONExportToString()将启用JSON的类序列化为JSON文档,并将其作为字符串返回。

   method %JSONExportToString(ByRef %export As %String, 
      %mappingName As %String = "") as %Status

参数:

  • export-包含序列化JSON文档的流。
  • %mappingName(可选)-用于导出的映射的名称。基本映射由""表示,是默认值。

%JSONImport()

%JSON.Adaptor.%JSONImport()将JSON或动态实体输入导入此对象。

   method %JSONImport(input, %mappingName As %String = "") as %Status

参数:

  • input-JSON作为字符串或流,或%DynamicAbstractObject的子类。
  • %mappingName(可选)-用于导出的映射的名称。基本映射由""表示,是默认值。

%JSONNew()

%JSON.Adaptor.%JSONNew()获取启用JSON的类的实例。在返回此类的实例之前,可以重写此方法以执行自定义处理(例如初始化对象实例)。但是,不应直接从用户代码调用此方法。

   classmethod %JSONNew(dynamicObject As %DynamicObject, 
      containerOref As %RegisteredObject = "") as %RegisteredObject
  • dynamicObject-具有要分配给新对象的值的动态实体。
  • containerOref(可选)-从%JSONImport()调用时的包含对象实例。

7.2 %JSON.Adaptor类和属性参数

除非另有说明,否则可以为类或单个属性指定参数。作为类参数,它指定相应属性参数的默认值。作为属性参数,它指定一个替代默认值的值。有关更多信息和示例,请参阅“使用参数映射”。

%JSONENABLED

启用属性转换方法的生成。

  parameter %JSONENABLED = 1;

有效值为:

  • 1-(默认)将生成JSON启用方法。
  • 0-方法生成器不会生成可运行的方法。

%JSONFIELDNAME(仅限属性)

设置要用作JSON内容中的字段名的字符串。

  parameter %JSONFIELDNAME

默认情况下,使用属性名称。

%JSONIGNOREINVALIDFIELD

控制JSON输入中意外字段的处理。

  parameter %JSONIGNOREINVALIDFIELD = 0;

有效值为:

  • 1-(默认值)将意外字段视为错误。
  • 0-将忽略意外的字段。

%JSONIGNORENULL

指定如何存储字符串属性的空字符串。此参数仅适用于真字符串(由XSDTYPE="string"和JSONTYPE=“string”`确定)。

  parameter %JSONIGNORENULL = 0;

有效值为:

  • 0-JSON输入中的空字符串(默认值)存储为$char(0)$char(1)作为字符串"“写入JSON。JSON输入中缺少的字段始终存储为”“,”"始终根据%JSONNULL参数输出为JSON。
  • 1-空字符串和缺少的JSON字段都作为"“输入,”“和$char(0)都作为字段值”"输出。

%JSONINCLUDE(仅限属性)

指定此属性是包含在JSON输出还是输入中。

  parameter %JSONINCLUDE = "inout"

有效值为:

  • “inout”(默认值)-包含在输入和输出中。
  • “outputly”-忽略属性作为输入。
  • “inputOnly”-忽略作为输出的属性。
  • “none”-从不包含属性。

%JSONNULL

控制未指定属性的处理。

  parameter %JSONNULL = 0;

有效值为:

  • 0-(默认值)导出期间跳过与未指定属性对应的字段。
  • 1-未指定的属性将导出为空值。

%JSONREFERENCE

指定如何将对象引用投影到JSON字段。

  parameter %JSONREFERENCE = "OBJECT";

有效值为:

  • “OBJECT”-(默认)被引用类的属性用于表示被引用对象。
  • “ID”-持久类或串行类的ID用于表示引用。
  • “OID”-持久类或串行类的OID用于表示引用。oid以类名id的形式投影到JSON。
  • “GUID”-持久类的GUID用于表示引用。

7.3 %JSON.Formatter方法和属性

%JSON.Formater可用于格式化JSON字符串、流或%DynamicAbstractObject子类的对象。有关更多信息和示例,请参阅“格式化JSON”一节。

Format()

%JSON.Formatter.Format()使用指定的缩进来格式化JSON文档,并将其写入当前设备。

method FormatToStream(input, ByRef export As %Stream.Object) as %Status

参数:

  • input-JSON作为字符串或流,或%DynamicAbstractObject的子类。

FormatToStream()

%JSON.Formatter.FormatToStream()使用指定的缩进格式化JSON文档并将其写入流。

method FormatToStream(input, ByRef export As %Stream.Object) as %Status

参数:

  • input-JSON作为字符串或流,或%DynamicAbstractObject的子类。
  • export-格式化的JSON流。

FormatToString()

%JSON.Formatter.FormatToString()使用指定的缩进设置JSON文档的格式并将其写入字符串,或者将启用JSON的类序列化为JSON文档并将其作为字符串返回。

method FormatToString(input, ByRef export As %String = "") as %Status

参数:

  • input-JSON作为字符串或流,或%DynamicAbstractObject的子类。
  • export(可选)-格式化的JSON流。

Indent

%JSON.Formatter.Indent属性指定JSON输出是否应缩进。默认为true。

property Indent as %Boolean [ InitialExpression = 1 ];

IndentChars

%JSON.Formatter.IndentChars属性指定在启用缩进时用于每个缩进级别的字符序列。默认值为一个空格。

property IndentChars as %String [ InitialExpression = " " ];

LineTerminator

%JSON.Formatter.LineTerminator属性指定缩进时要终止每行的字符序列。默认值为$char(13,10)。

property LineTerminator as %String [ InitialExpression = $char(13,10) ];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值