VFP AI 插件开发花絮9:JSON序列化和反序列化
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

夜雨聆风