You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在TwinCAT3中向数组添加对象并导出为JSON文件?

用FB_JsonDomParser生成结构体数组JSON文件的实现方法

要生成你需要的JSON格式,核心是遍历结构体数组,为每个结构体创建对应的JSON对象,再将对象逐一加入数组中。以下是完整的实现代码:

// 变量声明
fbJson : FB_JsonDomParser;
jRoot : SJsonValue;
jArray : SJsonValue;
jObj : SJsonValue;
bSaveJsonFile : BOOL;
arr : ARRAY[0..9] OF MYSTRUCT; // MYSTRUCT包含int类型a和real类型b
i : INT;

// 执行逻辑
jRoot := fbJson.NewDocument();
// 创建名为MyArray的数组成员,第三个参数是初始元素数量(可设0)
jArray := fbJson.AddArrayMember(jRoot, 'MyArray', 0);

// 遍历结构体数组,将每个元素转为JSON对象并加入数组
FOR i := 0 TO 9 DO
    // 创建新的JSON对象
    jObj := fbJson.NewObject();
    // 向对象添加int类型成员a
    fbJson.AddIntMember(jObj, 'a', arr[i].a);
    // 向对象添加real类型成员b
    fbJson.AddRealMember(jObj, 'b', arr[i].b);
    // 将对象添加到MyArray数组中
    fbJson.AddArrayElement(jArray, jObj);
END_FOR

// 保存JSON到文件,当bSaveJsonFile为TRUE时执行
fbJson.SaveDocumentToFile(sFile := 'C:\tmp\test.json', bExec := bSaveJsonFile);

关键说明

  • 用NewObject()创建每个结构体对应的JSON对象
  • 根据结构体成员的数据类型,调用对应AddXXXMember方法(如AddIntMember、AddRealMember)添加属性
  • 通过AddArrayElement将创建好的JSON对象加入到MyArray数组中
  • 循环遍历结构体数组时,可根据实际需求调整遍历范围(比如只处理已赋值的元素)

内容的提问来源于stack exchange,提问作者Pablo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 16:46:02