DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: webb123
今日帖子: 10
在线用户: 26
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 huangxing (gx) ★☆☆☆☆ -
盒子活跃会员
2018/10/17 10:50:57
标题:
到底应该怎么生成这样的json数组呢? 浏览:1110
加入我的收藏
楼主: 我经常遇到这样的数组要求:[{
"id":"GA001001",
"parentId":"GA001"}]就是没有前面的KEY的,我不知道delphi是怎么生成的,和应该怎么解析这样的数组呢?请大家指点一下。
----------------------------------------------
-
作者:
男 huangxing (gx) ★☆☆☆☆ -
盒子活跃会员
2018/10/17 11:05:01
1楼: 我看到的文章都是中规中矩的,前面有个KEY的,比如:
["record":{
"id":"GA001001",
"parentId":"GA001"},"id":"GA001002",
"parentId":"GA002"}]

这样的生成和解析都不成问题,但是很多公司就是不走寻常路的,就是要生成这种没有KEY的数据,而且要你提交的时候也按这种规格提交,我就不知道怎么处理了。
----------------------------------------------
-
作者:
男 ldmmig (ldm) ★☆☆☆☆ -
盒子活跃会员
2018/10/17 11:18:10
2楼: 你后面格式就是错的,数组能这样写?
----------------------------------------------
-
作者:
男 huangxing (gx) ★☆☆☆☆ -
盒子活跃会员
2018/10/17 11:29:31
3楼: 哦,写错了,应该是这样吧
{"Record":[{"id":"GA001001",
"parentId":"GA001"},"id":"GA001002",
"parentId":"GA002"}]}
----------------------------------------------
-
作者:
男 earthsbest (全能中间件) ▲▲▲▲△ -
普通会员
2018/10/17 11:32:23
3楼: Json对象数组,也是常见的用法。
此帖子包含附件:
PNG 图像
大小:58.1K
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
作者:
男 huangxing (gx) ★☆☆☆☆ -
盒子活跃会员
2018/10/17 11:46:49
4楼: 谢谢,怎么读取出来呢?
----------------------------------------------
-
作者:
男 earthsbest (全能中间件) ▲▲▲▲△ -
普通会员
2018/10/17 11:48:19
5楼: var
  Jv: TJSONValue;
  Ja: TJSONArray;
begin
  Ja := TJSONObject.ParseJSONValue(Json) as TJSONArray;
  for Jv in Ja do
    ShowMessage(Jv.GetValue<string>('id') + ' ' + Jv.GetValue<string>('parentId'));

  Ja.Free;
end;
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
作者:
男 huangxing (gx) ★☆☆☆☆ -
盒子活跃会员
2018/10/17 11:49:04
6楼: 感谢,感谢
----------------------------------------------
-
作者:
男 huangxing (gx) ★☆☆☆☆ -
盒子活跃会员
2018/10/17 11:57:39
7楼: 不好意思,遇到高手了,赶紧学习一下,如果多个数组呢,比如以下的格式

[{
"id":"GA001001",
"parentId":"GA001"},{
"id":"GA001002",
"parentId":"GA002"}]

十分感谢
----------------------------------------------
-
作者:
男 huangxing (gx) ★☆☆☆☆ -
盒子活跃会员
2018/10/17 12:21:01
8楼: 我测试了一下,以下办法可以解决
var
  aa:TJsonArray;
  bb, cc:TJSONObject;
  i, j, k:integer;
  Ja: TJSONArray;
  Jv: TJSONValue;
  GetStr:String;
//for i := 0 to 1000 do
begin
aa := TJsonArray.Create;
k:=0;
    try
      for j := 0 to 10 do
      begin

     {   bb := TJSONObject.Create;
        for k := 0 to 2 do
        begin
          bb.AddPair(inttostr(k), inttostr(k + 1));
        end;  }

        cc := TJSONObject.Create;
       // cc.AddPair('tablename1', bb);
         cc.AddPair('tablename1', 'A00'+inttostr(k + 1));
         cc.AddPair('tablename2', 'A00'+inttostr(k + 2));
         k:=K+1;
        aa.Add(cc);

      end;
      self.Memo1.Text := aa.ToString;
    finally
      aa:=NIL;
    end;


   Ja := TJSONObject.ParseJSONValue(Memo1.Text) as TJSONArray;
  memo2.Lines.Clear;
  for Jv in Ja do
    BEGIN
    GetStr:='tablename1=' + Jv.GetValue<string>('tablename1') + ' tablename2=' + Jv.GetValue<string>('tablename2');
     memo2.Lines.Add(GetStr);
    END;
end;


谢谢大家。
----------------------------------------------
-
作者:
男 hs_kill (lzl_17948876) ★☆☆☆☆ -
普通会员
2018/10/17 13:31:52
9楼: 数组[]/对象{}/键值x:y

JSON就这3种结构, 很容易理解的....先看看JSON格式说明
----------------------------------------------
http://www.cnblogs.com/lzl_17948876/
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行308.5938毫秒 RSS