Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
查看: 1672|回复: 0

fpjson读取json数据

[复制链接]
  • TA的每日心情
    开心
    2022-11-20 19:29
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2022-7-8 11:13:15 | 显示全部楼层 |阅读模式
    终于搞定多层json读取问题了,flag下希望能帮到有需要的朋友们。


    引用单元:fpjson,JsonParser
    1. procedure TForm1.Button2Click(Sender: TObject);
    2. var jData:TJSONData;
    3.     jDataArr:TJSONData;
    4.     jObject:TJSONObject;
    5.     jArray:TJSONArray;
    6.     s:String;
    7. begin
    8.   try
    9.   s:=Memo1.Text;

    10.   jData:=GetJSON(s);    //获取json数据
    11.   Memo2.Text:=jData.AsJSON;    //格式化json一
    12. //Memo2.Text:=jData.FormatJSON;    //格式化json二

    13.   jObject:=TJSONObject(jData);    //json数据结构化一
    14.   //jObject:=jData as TJSONObject;    //json数据结构化二
    15.   Memo2.Lines.Add(jObject.Strings['infocode']);    //读取json键值一
    16.   //Memo2.Lines.Add(jObject.Get('infocode',''));    //读取json键值二,第2个参数为默认值

    17.   jObject.Integers['infocode']:=10101;        //给键重新赋值
    18.   jObject.Add('update',now());    //新增一对键值

    19.   jDataArr:=jData.FindPath('lives[0].city');    //查找多层json路径,返回jsonData
    20.   Memo2.Lines.Add(jDataArr.AsJSON);    //读取多层json键值一
    21.   //Memo2.Lines.Add(jDataArr.FormatJSON);    //读取多层json键值二

    22.   jArray:=TJSONArray.Create;    //创建json空数组
    23.   jArray.Add('東');    //给数据添加元素
    24.   jArray.Add('南');
    25.   jArray.Add('西');
    26.   jArray.Add('北');
    27.   jObject.Add('方位',jArray);    //给数组命名并赋值

    28.   Memo2.Lines.Add(jData.FindPath('方位[0]').AsString);    //取出方位数组的第一个元素:東
    29.   except
    30.     on E:EHttpClient do
    31.        ShowMessage(e.Message);
    32.   end;

    33.   //最后要释放jData,否则会出现内存泄漏
    34.   //jData.Free;
    35.   //jDataArr.Free;

    36.   //参考信息来源 https://wiki.freepascal.org/fcl-json
    37. end;
    复制代码


    回复

    使用道具 举报

    *滑块验证:

    本版积分规则

    QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

    GMT+8, 2025-5-2 10:13 , Processed in 0.026772 second(s), 10 queries , Redis On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表