服务端命令返回值为json格式,如何处理单独的值
本帖最后由 paulliu 于 2024-6-23 13:41 编辑各位大佬,新人小白一名,在做金蝶的集成,有个困难帮忙指导下。
已经找到方法了,结论是目前的导入导出插件和xtool 都没法一次直接解析json第二层的数组,
解决方法一 截出来然后处理数组
解决方法二 嵌套循环
https://gcdn.grapecity.com.cn/showtopic-175695-1-423.html
【新提醒】服务端命令返回值为json格式,如何返回反序单独的值 - 活字格专区 - 求助中心 - 葡萄城开发者社区 (grapecity.com.cn)
这个帖子处理了金蝶的返回错误信息
json是这样的
{"Result":{"ResponseStatus":
{"ErrorCode":500,
"IsSuccess":false,
"Errors":[{"FieldName":null,"Message":"会话信息已丢失,请重新登录","DIndex":0}],
"SuccessEntitys":[],
"SuccessMessages":[],
"MsgCode":1}
}
} 给的解决方法是下图,处理错误没问题。
,,
我拿过来用,我的信息是成功信息,json是这样的
{"Result":{"ResponseStatus":
{"IsSuccess":true,
"Errors":[],
"SuccessEntitys":[{"Id":2167210,"Number":"CGRK022406047570","DIndex":0,"EntryIds":{"FInStockEntry":}}],
"SuccessMessages":[],
"MsgCode":0},
"ConvertResponseStatus":{"IsSuccess":true,"Errors":[],"SuccessEntitys":[],"SuccessMessages":[],"MsgCode":0}}}
我想要里面的第二层EntryIds":{"FInStockEntry":里面的几个数,挨个取出
找个Id试一下,提示Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
里面这个怎么数字怎么填呢。如果是要FInStockEntry":这个,Result.ResponseStatus.SuccessEntitys.?.Id.?EntryIds.?FInStockEntry一直点下去?大家别笑话,不懂数组,那个数组操作看不懂:'(
=ans.Result.ResponseStatus.SuccessEntitys
取的是 SuccessEntitys这个集合
想取第几个就用index取
比如取第一个就如下:
=ans.Result.ResponseStatus.SuccessEntitys.0
取id就
=ans.Result.ResponseStatus.SuccessEntitys.0.id
这样试试呢 感谢Ben.C大佬的支持,楼主您可以参考一下,取数组第一个元素从0开始,第二个为1,以此类推就可以了 我上传了demo,大佬们看下 这是附件,大佬们看看 唉,我先在本地用这种方式处理吧,服务端等大佬们。
怎么只出来一个呢 所有的插件都到不了第二层,就这么弄吧,一样用,
,
问题解决了就好~~
:hjyzw:
页:
[1]