delphi json uLkJSON
delphi 7 json 做个笔记,留着以后用
--源码
unit Umain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
mmo1: TMemo;
mmo2: TMemo;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
private
{ Private declarations }
str: string;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses uLkJSON;
procedure TForm1.Button1Click(Sender: TObject);
var
js: TlkJSONobject;
temp: string;
begin
// js := TlkJSONobject.Create();
// js.Add('name', '张三');
// js.Add('sex', '男');
// js.Add('age', '20');
str := '{"name":"张三","sex":"男","age":"20","data":[{"abc":"16.346","def":"3223.32"}]}';
// str := TlkJSON.GenerateText(js);
mmo1.Text := str;
//FreeAndNil(js);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
js: TlkJSONobject;
i: Integer;
begin
js := TlkJSON.ParseText(mmo1.Text) as TlkJSONobject;
//mmo2.Lines.Add(js.getString('name'));
//mmo2.Lines.Add(js.getString('sex'));
// mmo2.Lines.Add(js.getString('age'));
for i := 0 to js.Count - 1 do
begin
mmo2.Lines.Add(js.getString(i));
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
js: TlkJSONobject;
i, j, k: Integer;
jsRow: TlkJSONlist;
jsCol: TlkJSONobject;
jsField: TlkJSONobject;
begin
js := TlkJSON.ParseText(mmo1.Text) as TlkJSONobject;
for i := 0 to js.Count - 1 do
begin
if js.FieldByIndex[i] is TlkJSONlist then
begin
jsRow := js.FieldByIndex[i] as TlkJSONlist;
for j := 0 to jsRow.Count-1 do
begin
jsCol:= jsRow.Child[j] as TlkJSONobject;
for k := 0 to jsCol.Count-1 do
begin
mmo2.Lines.Add( jsCol.NameOf[k]+'+++'+jsCol.getString(k));
end;
end;
end
else
begin
mmo2.Lines.Add( js.NameOf[i]+'==='+ js.getString(i));
end;
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
var
js,jscol:TlkJSONobject;
i,j,k:Integer;
jsrow:TlkJSONlist;
begin
Button1.Click;
js:= TlkJSON.ParseText(mmo1.Text) as TlkJSONobject;
for i := 0 to js.Count-1 do
begin
if js.FieldByIndex[i] is TlkJSONlist then
begin
jsrow:=js.FieldByIndex[i] as TlkJSONlist ;
for j :=0 to jsrow.Count-1 do
begin
jscol:= jsrow.Child[j] as TlkJSONobject;
for k := 0 to jscol.Count-1 do
begin
mmo2.Lines.Add(jscol.NameOf[K] +':==:' + jscol.getString(k));
end;
end;
end
else
begin
mmo2.Lines.Add(js.NameOf[i] +':' + js.getString(i));
end;
end;
end;
procedure TForm1.Button5Click(Sender: TObject);
var
js,jstemp: TlkJSONobject;
jslist:TlkJSONlist;
temp: string;
begin
js := TlkJSONobject.Create();
jstemp:=TlkJSONobject.Create();
jstemp.Add('desf','16.346');
jstemp.Add('abc','13223.32');
jslist:=TlkJSONlist.Create;
jslist.Add(jstemp);
js.Add('name', '张三');
js.Add('sex', '男');
js.Add('age', '20');
js.Add('data',jslist);
// ATickerList := '[{' + ATickerList + '}]';
// ATickerList := '[{' + ATickerList + '}]';
//js.Add('data','[{' + '}]' );
//str := '{"name":"张三","sex":"男","age":"20","data":[{"acbd":"16.346","def":"3223.32"}]}';
str := TlkJSON.GenerateText(js);
mmo1.Text := str;
FreeAndNil(js);
end;
procedure TForm1.Button6Click(Sender: TObject);
var
jsM:TlkJSONstreamed;
js:TlkJSONobject;
begin
js:=TlkJSONobject.Create;
jsM:=TlkJSONstreamed.Create;
js.Add('name','张三');
js.Add('age','20');
js.Add('sex','男');
jsM.SaveToFile(js,'c:\1.txt');
end;
procedure TForm1.Button7Click(Sender: TObject);
var
jsM:TlkJSONstreamed;
js:TlkJSONobject;
i:Integer;
begin
jsM:=TlkJSONstreamed.Create;
js:= jsm.LoadFromFile('c:\1.txt') as TlkJSONobject;
for i := 0 to js.Count-1 do
begin
mmo2.Lines.Add( js.NameOf[i]+'=='+ js.getString(i) );
end;
end;
end.
--窗体文件
object Form1: TForm1
Left = 213
Top = 226
Width = 620
Height = 563
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Button1: TButton
Left = 256
Top = 32
Width = 75
Height = 25
Caption = '加入json'
TabOrder = 0
OnClick = Button1Click
end
object Button2: TButton
Left = 256
Top = 80
Width = 75
Height = 25
Caption = '解析json'
TabOrder = 1
OnClick = Button2Click
end
object mmo1: TMemo
Left = 8
Top = 24
Width = 233
Height = 337
ScrollBars = ssBoth
TabOrder = 2
end
object mmo2: TMemo
Left = 344
Top = 24
Width = 233
Height = 337
ScrollBars = ssBoth
TabOrder = 3
end
object Button3: TButton
Left = 256
Top = 120
Width = 75
Height = 25
Caption = '解析2'
TabOrder = 4
OnClick = Button3Click
end
object Button4: TButton
Left = 256
Top = 168
Width = 75
Height = 25
Caption = '解析3'
TabOrder = 5
OnClick = Button4Click
end
object Button5: TButton
Left = 256
Top = 216
Width = 75
Height = 25
Caption = 'Button5'
TabOrder = 6
OnClick = Button5Click
end
object Button6: TButton
Left = 248
Top = 272
Width = 75
Height = 25
Caption = '保存到文件'
TabOrder = 7
OnClick = Button6Click
end
object Button7: TButton
Left = 256
Top = 312
Width = 75
Height = 25
Caption = 'Button7'
TabOrder = 8
OnClick = Button7Click
end
end
delphi json uLkJSON的更多相关文章
- delphi json(CDS包含了Delta数据包)
在delphi中,数据集是最常用数据存取方式.因此,必须建立JSON与TDataSet之间的互转关系,实现数据之间通讯与转换.值得注意的是,这只是普通的TDataset与JSON之间转换,由于CDS包 ...
- Delphi json解析相关
身为一个资深的Delphi 开发者, 最近在做一个小工具的时候,开始捡起来pascal语言. 主要是开发一个内部用的小工具, 主要功能: 1.解析json格式 2.格式化json文件 3.校验json ...
- delphi json用法
用法:uses Superobject, Sperjsondelphi里有json单元. procedure TForm2.SuperObjectClick(Sender: TObject); var ...
- Delphi Json
superobject.pas单元对json的解析非常方便, 力荐 下面演示对如下json的解析 { ", "memo": "S.H.E 004" } ...
- Delphi Json之树遍历
procedure TForm1.VisitDirJsonTree(const AJsonObj: ISuperObject); var i: Integer; oItem: TSuperAvlEnt ...
- delphi c++builder JSON 生成与解析 例子
json,System.JSON,REST.JSON JSON有两种数据结构,对象和数组. 对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,...} 数组 ...
- 如何解析DELPHI XE5服务器返回的JSON数据(翻译)及中文乱码
<span style="font-size:14px;">一直想找如何解析JSON数据的说,今天终于找到有人发帖子了.之前有人说用superobject,Tlkjso ...
- Delphi XE6 原生解析json
Delphi XE5带了system.json单元,原生提供了json支持类.下面是解析json用法说明: 最简单的JSON大致像这样 { "date":"周二(今天, ...
- 转(Delphi 新窑洞):使用delphi 开发多层应用(十七)使用RTC web 服务器返回JSON
RTC作为delphi 的最专业的web 应用服务器,如果客户端要使用JSON 的话,那么使用RTC 应该也是一种 非常好的选择.下面我们做一个使用RTC web 服务器返回数据库JSON 的例子. ...
随机推荐
- 巴什博奕小结 HDU2188 HDU1846 HDU2149
摘自百度百科: 巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个.最后取光者得胜. 显然,如果n=m+1,那么由于一次最多只能取m个,所以, ...
- 数据结构与算法实验题 6.1 s_sin’s bonus
数据结构与算法实验题 6.1 s_sin's bonus ★实验任务 正如你所知道的 s_sin 是一个非常贪玩的人 QAQ(如果你非常讨厌他请直接从第二段开 始看),并且令人感到非常遗憾的是,他是一 ...
- mysql 5.7 innodb count count(*) count(1) 大数据 查询慢 耗时多 优化
原文:mysql 5.7 innodb count count(*) count(1) 大数据 查询慢 耗时多 优化 问题描述 mysql 5.7 innodb 引擎 使用以下几种方法进行统计效率差不 ...
- Java 网络I/O模型
网络I/O模型 人多了,就会有问题.web刚出现的时候,光顾的人很少.近年来网络应用规模逐渐扩大,应用的架构也需要随之改变.C10k的问题,让工程师们需要思考服务的性能与应用的并发能力. 网络应用需要 ...
- 利用a标签导出csv文件
原文 简书原文:https://www.jianshu.com/p/a8687610cda3 大纲 1.需求分析 2.通过a标签实现文件导出 3.实现方式 1.需求分析 导出文件,使用最多的方式还是服 ...
- xmpp即时通讯协议的特性---长处和缺点!
xmpp协议的定义? XMPP是一种基于标准通用标记语言的子集XML的协议,它继承了在XML环境中灵活的发展性. 因此.基于XMPP的应用具有超强的可扩展性.经过扩展以后的XMPP能够通过发送扩展的信 ...
- Android多线程研究(3)——线程同步和互斥及死锁
为什么会有线程同步的概念呢?为什么要同步?什么是线程同步?先看一段代码: package com.maso.test; public class ThreadTest2 implements Runn ...
- [转载]Ocelot简易教程(一)Ocelot是什么
Ocelot简易教程(一)Ocelot是什么 简单的说Ocelot是一个用.NET Core实现并且开源的API网关技术. 可能你又要问了,什么是API网关技术呢?Ocelot又有什么特别呢?我们又该 ...
- ccpc2016长春站打铁记(后记)
Day3 "学术交流日" 自己进我的空间看吧. http://user.qzone.qq.com/190741511/4
- js动态获取地址栏后的参数
原文链接:https://blog.csdn.net/qq_37936542/article/details/78866651 需求:js动态的获取地址栏后面的参数 js代码: alert(GetQu ...