首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >VFP AI 插件开发花絮9:JSON序列化和反序列化

VFP AI 插件开发花絮9:JSON序列化和反序列化

作者头像
firstxinjie
发布2026-04-02 11:02:42
发布2026-04-02 11:02:42
1200
举报

插件开发过长中,无法避免JSON的序列化和反序列化。之前采用的是 SPS 开发的 JSON 库。

尽管之前使用它完美的处理过百度地图API返回的JSON,但是这次似乎有些翻车。反序列化时,偶尔的报错,面对庞大的源代码,也要头疼一下;而且,在反序列化时,往往“丢失”一部分JSON元素,使得插件的优化变得不那么优雅。

静下心,找到一个处理原生JSON对象的方法。制作了一个 JSONHelper 库。

代码语言:javascript
复制
Set Classlib To JSONHelper.VCX

*!* ==========================================
*!* JsonHelper 使用示例
*!* ==========================================
LOCAL loJson, loUser, lcJsonStr, lcOutput

* 1. 初始化工具类
m.loJson = CREATEOBJECT("JsonHelper")

* 2. 准备一段 JSON 字符串(模拟 API 返回)
TEXT TO m.lcJsonStr NOSHOW
{
  "id": "b3ad4fd6-1fb9-49ba-bddc-0cb529965720",
  "object": "chat.completion",
  "created": 1774366871,
  "model": "deepseek-chat",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello! How can I assist you today? ??"
      },
      "logprobs": null,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 10,
    "completion_tokens": 11,
    "total_tokens": 21,
    "prompt_tokens_details": {
      "cached_tokens": 0
    },
    "prompt_cache_hit_tokens": 0,
    "prompt_cache_miss_tokens": 10
  },
  "system_fingerprint": "fp_eaab8d114b_prod0820_fp8_kvcache_new_kvcache"
}
ENDTEXT

* 3. 反序列化 (String -> Object)
m.loUser = m.loJson.Parse(lcJsonStr)

Clear 

* 4. 序列化 (Object -> String)
? "序列化 -- 紧凑模式:"
?
? m.loJson.Stringify(m.loUser)
?
? "序列化 -- 格式化:"
?
? m.loJson.Stringify(m.loUser, .T.)
?

* 5. 读取数据
? "模型:" + m.loUser.model
? "内容:" + m.loUser.choices.item(0).message.content
? "token总数:" + Transform(m.loUser.usage.total_tokens)
? "提示词缓存:" + Transform(m.loUser.usage.prompt_tokens_details.cached_tokens)
? "指纹:" + m.loUser.system_fingerprint

输出:

完美!

原生JSON的序列化和反序列化;自动的字符转义和转码;越高的OS版本性能越好;VFP原生操作。

todo:从零构造JSON对象并进行序列化

如果你喜欢,可留言/私信/私聊,按原样有偿共享。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 xinjie的VFP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档