| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 2926 人关注过本帖
标题:vfp json.dll demo 更新 2026.09.01
只看楼主 加入收藏
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:11654
专家分:43678
注 册:2014-5-20
收藏
 问题点数:0 回复次数:73 
vfp json.dll demo 更新 2026.09.01
主要特点:

1、反序列化/序列化。

2、二进制反序列化/序列化。支持 CBOR、BSON、MessagePack、BJData、UBJSON 格式。

3、以 json 节点路径进行数据的 读写、添加、修改、删除。

VFP 使用 JSON 可以与现代化架构(如 Web API)实现零依赖、高兼容的高效数据交换‌。‌‌

对于一些结构有点复杂的数据,例如应用系统配置、复杂的菜单结构等,用 JSON 来组织数据,操作起来相对DBF方便些。

二进制序列化可以提高数据传输效率和安全性。

提供两个版本:
一个是 API 风格,就好像使用 windows api 一样声明调用函数。
另一个是 COM 类风格,但不用注册,调用接口函数就可以创建 JSON 对象。

由于时间和精力有限,只是简单演示代码,没有严谨测试。

详细可以参考 vfp 源代码文件,有问题可以提出共同探讨。

更新 2026.09.01
 accept() 禁止弹出异常提示窗口,直接返回 .t. / .f.

附件:
vfp_json_dll.rar (1.38 MB)



更新 20260819
添加几个与文件相关的构造 json 函数:
    parseFromFile() .... 由序列化文本文件构造 json 对象
    parseToFile() ...... 将 json 对象序列化保存到文件
    binaryFromFile() ... 由文件构造二进制 json 对象
    binaryToFile() ..... 将二进制 json 对象数据保存到文件
    get_subtype() ...... 获取二进制 json 自定义子类型

测试代码:参考 vfp_json_demo.prg 的 test()

附件:
vfp_json_dll.rar (1.38 MB)








[此贴子已经被作者于2026-9-2 20:31编辑过]

搜索更多相关主题的帖子: 对象 vfp 二进制 数据 文件 
2026-08-10 23:00
sych
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:662
专家分:761
注 册:2019-10-11
收藏
得分:0 
谢谢吹版辛苦付出,这个功能让BS化繁为简
2026-08-11 06:58
金太狼
Rank: 2
等 级:论坛游民
帖 子:26
专家分:13
注 册:2023-2-11
收藏
得分:0 
2026-08-11 09:14
jsddx
Rank: 2
等 级:论坛游民
帖 子:56
专家分:25
注 册:2006-4-11
收藏
得分:0 
感谢
2026-08-11 11:24
nbwww
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:11
帖 子:400
专家分:1066
注 册:2021-1-9
收藏
得分:0 
2026-08-11 13:06
easyppt
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:549
专家分:1076
注 册:2021-11-24
收藏
得分:0 
接口通信现在全是json,VFP确实需要一个强悍的json组件 提振一下士气了

吹版威武

不知道3层以上反序列化是否可以,jscript 不能反3层及以上,有空我也测试一下  

可以考虑增加一下,cursor 到 json  以及  json 到 cursor  

前端 json 到后端VFP ,VFP转cursor,然后再CA/SPT,最后更新 MSSQL,同样,返回数据给前端,就是反向操作。所以转化必不可少。
做成通用组件,才具备优势

支持 /U 及/转义,速度一定要快,5Mjson 不可以超过2秒时间

市面上很多json示例,即便他们的功能再强大,可速度像蜗牛,那也是废材,没用的,所以前车之鉴啊




[此贴子已经被作者于2026-8-12 08:19编辑过]

2026-08-12 08:08
schtg
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:USA
等 级:贵宾
威 望:67
帖 子:2746
专家分:4967
注 册:2012-2-29
收藏
得分:0 
回复 楼主 吹水佬
2026-08-12 08:51
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:11654
专家分:43678
注 册:2014-5-20
收藏
得分:0 
以下是引用easyppt在2026-8-12 08:08:47的发言:

不知道3层以上反序列化是否可以,jscript 不能反3层及以上,有空我也测试一下  

这里有“一个 jsondata 挑战去解析”,可以下载 jsondata.txt 测试。
https://bbs.bccn.net/viewthread.php?tid=514091&highlight=json

测试 demo 代码:

* API 版本
程序代码:
FUNCTION test()
    LOCAL h_json
    h_json = parse(FILETOSTR("c:\_temp\jsondata.txt"))
    \〖序列化〗
    \<<stringify(h_json,4)>>
    \
    \
    \〖枚举〗
    enum_json(h_json, 0)
    remove_handle(h_json)
    \
ENDFUNC


* COM 版本
程序代码:
FUNCTION test()
    PRIVATE json, h_json
    json = CREATEOBJECT("JSON_CLASS")
    json.parse(FILETOSTR("c:\_temp\jsondata.txt"))
    \〖序列化〗
    \<<json.stringify(0,4)>>
    \
    \
    \〖枚举〗
    enum_json(0, 0)
    \
ENDFUNC



[此贴子已经被作者于2026-8-12 10:18编辑过]

2026-08-12 09:54
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:11654
专家分:43678
注 册:2014-5-20
收藏
得分:0 
以下是引用easyppt在2026-8-12 08:08:47的发言:

可以考虑增加一下,cursor 到 json  以及  json 到 cursor  

前端 json 到后端VFP ,VFP转cursor,然后再CA/SPT,最后更新 MSSQL,同样,返回数据给前端,就是反向操作。所以转化必不可少。
做成通用组件,才具备优势

vfp_json_demo.prg 有一个简单的 JSON <==> DBF 示例,这是最基本的数据处理功能,无非就是数据读写的问题。


2026-08-12 10:00
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:11654
专家分:43678
注 册:2014-5-20
收藏
得分:0 
以下是引用easyppt在2026-8-12 08:08:47的发言:

支持 /U 及/转义,速度一定要快,5Mjson 不可以超过2秒时间

市面上很多json示例,即便他们的功能再强大,可速度像蜗牛,那也是废材,没用的,所以前车之鉴啊

一般来说 API 比 COM 组件效率高,尤其是要用 CREATEOBJECT() 来创建第三方的类组件效率会更低。

如果对效率要求较高,可以试试用腾讯开源的 json api,这个是针对游戏开发的,占用资源少、延时低、性能高,但功能相对少些。

 


2026-08-12 10:11
快速回复:vfp json.dll demo 更新 2026.09.01
数据加载中...
 
   
关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016558 second(s), 10 queries.
Copyright©2004-2026, BCCN.NET, All Rights Reserved