paulliu 发表于 2024-6-21 16:45:38

服务端命令返回值为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一直点下去?大家别笑话,不懂数组,那个数组操作看不懂:'(



Ben.C 发表于 2024-6-21 17:23:15

=ans.Result.ResponseStatus.SuccessEntitys
取的是 SuccessEntitys这个集合
想取第几个就用index取
比如取第一个就如下:
=ans.Result.ResponseStatus.SuccessEntitys.0
取id就
=ans.Result.ResponseStatus.SuccessEntitys.0.id
这样试试呢

Shawn.Liu 发表于 2024-6-21 18:00:59

感谢Ben.C大佬的支持,楼主您可以参考一下,取数组第一个元素从0开始,第二个为1,以此类推就可以了

paulliu 发表于 2024-6-21 20:12:49

我上传了demo,大佬们看下

paulliu 发表于 2024-6-21 20:14:23

paulliu 发表于 2024-6-21 20:16:00

这是附件,大佬们看看

paulliu 发表于 2024-6-22 10:26:19

唉,我先在本地用这种方式处理吧,服务端等大佬们。

paulliu 发表于 2024-6-22 10:52:06

怎么只出来一个呢

paulliu 发表于 2024-6-22 19:50:22

所有的插件都到不了第二层,就这么弄吧,一样用,

Nathan.guo 发表于 2024-6-24 15:49:40

问题解决了就好~~
:hjyzw:
页: [1]
查看完整版本: 服务端命令返回值为json格式,如何处理单独的值