DataSet Serialize
<p>DataSet Serialize</p><h1><span style="font-size: 13px">用于Delphi和Lazarus (FPC)的JSON到数据集和数据集到JSON转换器</span></h1>
<p><span>源码下载地址:https://github.com/viniciussanchez/dataset-serialize</span></p>
<pre><span class="pl-k">uses DataSet.Serialize;</span><br>数据集序列为json</pre>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">var
LJSONArray: TJSONArray;
LJSONObject: TJSONObject;
begin
LJSONObject := qrySamples.ToJSONObject(); // 导出单个记录
LJSONArray := qrySamples.ToJSONArray(); // 导出所有记录
end;
</pre>
</div>
<p> 保存和加载数据集的结构</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">var
LJSONArray: TJSONArray;
begin
LJSONArray := qrySamples.SaveStructure;
qrySamples.LoadStructure(LJSONArray, True);
end;
</pre>
</div>
<p> 验证json</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">begin
LJSONArray := qrySamples.ValidateJSON('{"country":"Brazil"}');
end;
</pre>
</div>
<p> 从json加载</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">begin
qrySamples.LoadFromJSON('{"firstName":"Vinicius Sanchez","country":"Brazil"}');
end;
</pre>
</div>
<p> 从JSON修改记录</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">begin
qrySamples.MergeFromJSONObject('{"firstName":"Vinicius","country":"United States"}');
end;
</pre>
</div>
<p> 配置</p>
<ul>
<li><span>日期输入为UTC(时区)</span></li>
</ul>
<div class="highlight highlight-source-pascal position-relative">
<pre><span>TDataSetSerializeConfig.GetInstance.DateInputIsUTC := True;</span></pre>
</div>
<ul>
<li><span>导出空值</span></li>
</ul>
<div class="highlight highlight-source-pascal position-relative">
<pre><span>TDataSetSerializeConfig.GetInstance.export</span><span class="pl-k"><span>.ExportNullValues := True;</span></span></pre>
</div>
<ul>
<li><span>仅导出可见字段</span></li>
</ul>
<div class="highlight highlight-source-pascal position-relative">
<pre><span>TDataSetSerializeConfig.GetInstance</span>.export.ExportOnlyFieldsVisible := True;</pre>
</div>
<ul>
<li><span>将子数据集导出为 JSON 对象(当您只有 1 条记录时)</span></li>
</ul>
<div class="highlight highlight-source-pascal position-relative">
<pre><span>TDataSetSerializeConfig.GetInstance.export</span><span class="pl-k"><span>.ExportChildDataSetAsJsonObject := False;</span></span></pre>
</div>
<ul>
<li><span>仅导入可见的字段</span></li>
</ul>
<div class="highlight highlight-source-pascal position-relative">
<pre><span>TDataSetSerializeConfig.GetInstance.import</span><span class="pl-k"><span>.ImportOnlyFieldsVisible := True;</span></span></pre>
</div>
<ul>
<li><span>案例名称定义</span></li>
</ul>
<div class="highlight highlight-source-pascal position-relative">
<pre><span class="pl-c"><span class="pl-c"><span><span>//</span></span><span><span> cndNone, cndLower, cndUpper, cndLowerCamelCase, cndUpperCamelCase</span></span><span>
TDataSetSerializeConfig.GetInstance.CaseNameDefinition := cndLowerCamelCase; </span>
<span>
cndNone:</span><span>
[</span><span class="pl-c"><span class="pl-c"><span><span> {</span></span><span><span> "MOB_ICADASTRO":11795,"MOB_EMI_REG":6,"CODIGODOCLIENTE":1,"CDOCUMEN1":"999999" </span></span><span class="pl-c"><span><span>}</span></span><span> ]</span>
<span>
cndLower:</span><span>
[</span><span class="pl-c"><span class="pl-c"><span><span> {</span></span><span><span> "mob_icadastro":11795,"mob_emi_"cododig6": :1,"cdocumen1":"999999" </span></span><span class="pl-c"><span><span>}</span></span><span> ]</span>
<span>
cndUpper:</span><span>
[</span><span class="pl-c"><span class="pl-c"><span><span> {</span></span><span><span> "MOB_ICADASTRO":11795,"MOB_EMI_REG":6,"CODIGODOCLIENTE":1,"CDOCUMEN1":"999999" </span></span><span class="pl-c"><span><span>}</span></span><span> ]</span>
<span>
cndLowerCamelCase</span><span class="pl-c"><span class="pl-c"><span><span>"mobIcadastro":11795,"mobEmiReg":6,"codigodocliente":1,"cdocumen1":"999999" </span></span><span class="pl-c"><span><span>}</span></span><span> ] </span>
<span>
cndUpperCamelCase:: </span><span>
[ </span><span class="pl-c"><span class="pl-c"><span><span>{</span></span><span><span> "MobIcadastro":11795,"MobEmiReg":6,"Codigodocliente":1 "Cdocumen1":"999999" </span></span><span class="pl-c"><span><span>}</span></span><span> ]</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><br></pre>
<ul>
<li><span>格式日期(导出字段类型等于 ftDate)</span></li>
</ul>
<div class="highlight highlight-source-pascal position-relative">
<pre><span>TDataSetSerializeConfig.GetInstance.export</span><span class="pl-k"><span>.FormatDate := </span><span class="pl-s"><span class="pl-pds"><span><span>'</span></span><span><span> YYYY-MM-DD </span></span><span class="pl-pds"><span><span>'</span></span><span> ;</span></span></span></span></span></pre>
</div>
<ul>
<li><span>格式货币(导出字段类型等于 ftCurrency)</span></li>
</ul>
<div class="highlight highlight-source-pascal position-relative">
<pre><span>TDataSetSerializeConfig.GetInstance.export</span><span class="pl-k"><span>.FormatCurrency := </span><span class="pl-s"><span class="pl-pds"><span><span>'</span></span><span><span> 0.00## </span></span><span class="pl-pds"><span><span>'</span></span><span> ;</span></span></span></span></span></pre>
</div>
<ul>
<li><span>定义数据集前缀</span></li>
</ul>
<div class="highlight highlight-source-pascal position-relative">
<pre><span>TDataSetSerializeConfig.GetInstance.DataSetPrefix := [ </span><span class="pl-s"><span class="pl-pds"><span><span>'</span></span><span><span> mt </span></span><span class="pl-pds"><span><span>'</span></span><span> , </span><span class="pl-s"><span class="pl-pds"><span><span>'</span></span><span><span> qry </span></span><span class="pl-pds"><span><span>'</span></span><span> ];</span></span></span></span></span></span></span></pre>
</div>
</div>
<pre><br><br> </pre>
</div>
<div id="MySignature" role="contentinfo">
<p>本文来自博客园,作者:{咏南中间件},转载请注明原文链接:https://www.cnblogs.com/hnxxcxg/p/15138564.html</p><br><br>
来源:https://www.cnblogs.com/hnxxcxg/p/15138564.html
頁:
[1]