| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1498 人关注过本帖
标题:求教 foxjson.ff 如果json串过长,会报错!
只看楼主 加入收藏
weiyisc
Rank: 2
等 级:论坛游民
帖 子:103
专家分:14
注 册:2009-5-17
收藏
得分:0 
回复 9楼 sdta
感谢感谢!领教了。
2023-04-09 21:12
weiyisc
Rank: 2
等 级:论坛游民
帖 子:103
专家分:14
注 册:2009-5-17
收藏
得分:0 
回复 10楼 吹水佬
感谢吹版!另外请教一个问题。一个变量能存多少字符?
2023-04-09 21:13
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
回复 10楼 吹水佬
吹版水平就是高

坚守VFP最后的阵地
2023-04-09 21:38
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用weiyisc在2023-4-9 21:13:41的发言:

感谢吹版!另外请教一个问题。一个变量能存多少字符?

可以测试一下
帮助文件说到的有:
图片附件: 游客没有浏览图片的权限,请 登录注册
2023-04-09 22:14
easyppt
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:302
专家分:701
注 册:2021-11-24
收藏
得分:4 
哇塞,两位帮主 真厉害,分别以不同的方式解析了json,我对VFP操作json 几乎没怎么用过,借楼主的宝贴,请教一下,你们是如何把VFP的表记录生成json的啊,谢谢!!

另外,就是 如果字段内容存在 中文,怎么以UTF8的格式生成 json呢

[此贴子已经被作者于2023-4-9 22:15编辑过]

2023-04-09 22:14
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏(1)
得分:0 
以下是引用easyppt在2023-4-9 22:14:31的发言:

哇塞,两位帮主 真厉害,分别以不同的方式解析了json,我对VFP操作json 几乎没怎么用过,借楼主的宝贴,请教一下,你们是如何把VFP的表记录生成json的啊,谢谢!!

另外,就是 如果字段内容存在 中文,怎么以UTF8的格式生成 json呢

1、可以按要求的格式写,如:
程序代码:
CREATE CURSOR tt (f1 c(10),f2 I)
INSERT INTO tt VALUES ("abcd", 123)
INSERT INTO tt VALUES ("ABCD", 456)
cJson = ''
SCAN 
    cJson = cJson + ',{"f1":"' + ALLTRIM(f1) + '","f2":' + TRANSFORM(f2) + '}'
ENDSCAN
cJson = '{"tt":[' + SUBSTR(cJson,2) + ']}'
? cJson

2、STRCONV()可以转换
2023-04-09 22:42
easyppt
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:302
专家分:701
注 册:2021-11-24
收藏
得分:0 
吹版还没休息啊,感谢回复!
2023-04-09 22:52
weiyisc
Rank: 2
等 级:论坛游民
帖 子:103
专家分:14
注 册:2009-5-17
收藏
得分:0 
以下是引用吹水佬在2023-4-9 21:07:24的发言:


jsCode = "var json=" + LOWER(STRCONV(FILETOSTR("解析的JSON.txt"),11))
js = CREATEOBJECT("ScriptControl")
js.Language = "JavaScript"
js.AddCode(jsCode)
json = js.CodeObject.json
? json.output.message    && "message": "成功"
CREATE CURSOR tt (id v(20), hilistCode v(30), hilistName v(30), updtTime v(20))
FOR EACH aJsonData IN json.output.data.data
    INSERT INTO tt VALUES (aJsonData.id, aJsonData.hilistcode, aJsonData.hilistname, aJsonData.updttime)
ENDFOR
SELECT * FROM tt


请教版主:
LOWER(STRCONV(FILETOSTR("解析的JSON.txt"),11)) 为什么需要lower转小写??,我尝试直接传入大小写并存的字符串。就报错,找不到节点。
图片附件: 游客没有浏览图片的权限,请 登录注册
2023-04-09 23:09
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
回复 18楼 weiyisc
此时好像对name只认小写,具体情况不明。
有大写的value还要转换回来,有点麻烦。

[此贴子已经被作者于2023-4-9 23:51编辑过]

2023-04-09 23:50
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏(2)
得分:0 
看似是VFP是按小写来解释,有点怪,name含有大写字母不行,对汉字、小写字母、数字就没问题。
用js的命令来解释就没问题。
程序代码:
jsCode = "var json=" + STRCONV(FILETOSTR("解析的JSON.txt"),11)
js = CREATEOBJECT("ScriptControl")
js.Language = "JavaScript"
js.AddCode(jsCode)
json = js.CodeObject.json
? json.output.message    && "message": "成功"
CREATE CURSOR tt (id v(20), hilistCode v(30), hilistName v(120), updtTime v(20))
FOR i=0 TO json.output.data.data.length-1
    INSERT INTO tt VALUES (js.eval("json.output.data.data["+TRANSFORM(i)+"].id"),;
                           js.eval("json.output.data.data["+TRANSFORM(i)+"].hilistCode"),;
                           js.eval("json.output.data.data["+TRANSFORM(i)+"].hilistName"),;
                           js.eval("json.output.data.data["+TRANSFORM(i)+"].updtTime"))
ENDFOR
SELECT * FROM tt


[此贴子已经被作者于2023-4-10 10:53编辑过]

2023-04-10 10:50
快速回复:求教 foxjson.ff 如果json串过长,会报错!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

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