谁有解析json格式数据的通用代码?

秋天之落叶 2020-06-12 11:43:08
一个很大的json格式数据文件,字段很多,实在是懒得组织代码了,那位同学有通用的代码,能不能分享一下,万分感谢。
对了,我使用SuperObject编译不过去,会出错。
10.3.1版本。
...全文
260 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tanqth 2020-06-15
  • 打赏
  • 举报
回复
虽然我用不上,还是得支持一下的。
秋天之落叶 2020-06-15
  • 打赏
  • 举报
回复
网上找了一个通用代码,有效果,但是会漏数组前的数据,需要的可以自己修改一下,哈
uses
SysUtils,
DBXJSON;

type
TProcessJSONString = TProc<TJSONString>;

procedure DoJSONObject(o: TJSONObject; Process: TProcessJSONString); forward;

procedure DoJSONArray(o: TJSONArray; Process: TProcessJSONString);
var i: integer;
v: TJSONValue;
begin
for i := 0 to o.Size - 1 do begin
v := o.Get(i);
if v is TJSONObject then
DoJSONObject(v as TJSONObject, Process);
end;
end;

procedure DoJSONObject(o: TJSONObject; Process: TProcessJSONString);
var i: integer;
p: TJSONPair;
begin
for i := 0 to o.Size - 1 do begin
p := o.Get(i);
Process(p.JsonString);
if p.JsonValue is TJSONObject then
DoJSONObject(p.JsonValue as TJSONObject, Process)
else if p.JsonValue is TJSONArray then
DoJSONArray(p.JsonValue as TJSONArray, Process)
else if p.JsonValue is TJSONString then
Process(p.JsonValue as TJSONString);
end;
end;

var o: TJSONObject;
begin
o := TJSONObject.ParseJSONValue('{"data":{"results":[{"Branch":"ACCT590003"}]}}') as TJSONObject;
try
DoJSONObject(o,
procedure (o: TJSONString)
begin
WriteLn(o.ToString);
end
);
finally
o.Free;
end;
ReadLn;
end.
秋天之落叶 2020-06-13
  • 打赏
  • 举报
回复
好吧,真没想到,excel2019竟然支持json格式的导入,哈
tanqth 2020-06-13
  • 打赏
  • 举报
回复
哦,你是“懒得组织代码”,给钱,有人帮你组织。
tanqth 2020-06-13
  • 打赏
  • 举报
回复
系统自己就有JSON解析。

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧