| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 407 人关注过本帖
标题:如何获取 json对象的属性的数量 和 数组属性的下标数量
只看楼主 加入收藏
easyppt
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:302
专家分:696
注 册:2021-11-24
结帖率:100%
收藏
 问题点数:0 回复次数:5 
如何获取 json对象的属性的数量 和 数组属性的下标数量
m.oScript = Createobject("MSScriptControl.ScriptControl")
m.oScript.Language = "jscript"

通过 ScriptControl 解析 json 时,返回的 json对象,这个对象如何再次 传递给 ScriptControl 来获取某个 json节点下的:
属性的数量 或 某个数组属性的下标数量

比如 json 字符串: jsonString = [{"key1":"value1","key2":"value2"}]
这里没设置数组属性,但实际有数组属性的。

[此贴子已经被作者于2024-6-12 09:48编辑过]

搜索更多相关主题的帖子: 获取 数量 对象 数组 属性 
2024-06-12 09:47
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用easyppt在2024-6-12 09:47:19的发言:

比如 json 字符串: jsonString = [{"key1":"value1","key2":"value2"}]
这里没设置数组属性,但实际有数组属性的。

jsonString不像JSON,像数组(一个元素为json数据)
另ScriptControl不是解释器,JS自定义的对象属性或值对VFP不直接可见。
可以写JS代码将运算结果返回给VFP。

2024-06-12 21:50
easyppt
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:302
专家分:696
注 册:2021-11-24
收藏
得分:0 
谢谢吹版,原来是要写自定义js啊

另外,还有一个问题,ScriptControl返回的json对象,怎么再转成 json字符串啊,js 有这样的反转函数吗
2024-06-14 09:02
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1089
专家分:2682
注 册:2015-12-30
收藏
得分:0 
推荐使用木瓜大师的foxjson类,我一直在用,很可靠
楼主需要的那些都有
foxJson.rar (29.01 KB)



2024-06-14 09:47
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏(1)
得分:0 
以下是引用easyppt在2024-6-14 09:02:42的发言:

谢谢吹版,原来是要写自定义js啊

另外,还有一个问题,ScriptControl返回的json对象,怎么再转成 json字符串啊,js 有这样的反转函数吗

ScriptControl不能解释JS,用起来麻烦点,简单点也要调用现成的JS库来处理。
或者可以考虑用IE的解释器,如:
程序代码:
TEXT TO jsonString TEXTMERGE NOSHOW PRETEXT 15
{"array":[{"key1":"value1","key2":"value2"}]}
ENDTEXT

TEXT TO jsCode TEXTMERGE NOSHOW PRETEXT 15
<script>
var json        = function(jsonString){return JSON.parse(jsonString);};
var toStringify = function(obj){return JSON.stringify(obj);};
var toString    = function(obj){return Object.prototype.toString.call(obj);};
var getValue    = function(obj,name){return obj[name];};
var isArray     = function(obj){return Array.isArray(obj);};
var getArray    = function(obj,num){return obj[num];};
</script>
ENDTEXT

dom = CREATEOBJECT("htmlfile")
dom.write(jsCode)
win  = dom.parentWindow
json = win.json(jsonString)
? win.toStringify(json)
? win.toString(json.array)
? win.isArray(json.array)
FOR i=0 TO json.array.length-1
    obj = win.getArray(json.array,i)
    ? win.getValue(obj,"key1"), win.getValue(obj,"key2")
ENDFOR


显示结果:
图片附件: 游客没有浏览图片的权限,请 登录注册


2024-06-14 21:41
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1730
专家分:3324
注 册:2012-2-29
收藏
得分:0 
回复 5楼 吹水佬
好!谢谢!
2024-06-15 05:51
快速回复:如何获取 json对象的属性的数量 和 数组属性的下标数量
数据加载中...
 
   



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

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