Mr.Hu 发表于 2024-8-21 08:12:50

服务端命令参数类型不够用

本帖最后由 Brian.Zhang 于 2024-8-22 10:31 编辑

   我用的版本是9.0.103,活字格服务端命令的参数类型目前支持两种类型,基础类型和数组类型,其中数组类型的参数感觉功能强大,可以传入一个预先定义JSON结构的JSON数组,然后由服务端命令逻辑处理后,返回一个JSON数组,使用比较方便。问题来了,如果我传入的是一个JSON对象,不是数组,那参数类型只能选择基础类型,由于该对象的JSON结构未知,那就得安装JSON序列化和反序列化插件,然后将传入的JSON结构模板复制到反序列化里,过一遍序列化和反序列化进行解析,这样才能在后续的操作中使用这个JSON对象,感觉操作很麻烦啰嗦。我感觉服务端命令完全可以增加一个JSON对象的参数类型,像JSON数组那样可以预先定义JSON结构,这样就不需要序列化和反序列化了,给使用者提供方便。当然,我们也可以把JSON对象包装成JSON数组,然后将对象转换成数组传入,但这样又给使用者增加了转换的工作量,也不妥当。
    综上所述,我的观点是服务端命令增加一个JSON对象的参数类型,啥事也没有了。从技术难度上,我作为外行感觉是没难度的,JSON数组都可以传入,JSON对象当然没有问题。


Mr.Hu 发表于 2024-8-21 08:24:14

更进一步的,我觉得干脆不需要分参数类型,参数传入后,活字格自动解析,到底是基础类型还是JSON数组,或者是JSON对象,也不需要事先定义JSON结构。确定类型后,后台自动给出解析结果,给服务端命令使用,这样才显示出活字格的强大哈。个人观点仅供参考。

lovert 发表于 2024-8-21 08:26:56

任何网络请求发给服务段的只能市字符串,对象是内存里的,你想保存到磁盘里也要序列化成字符串,对象是不能直接发送到服务端的,任何软件都是如此

Mr.Hu 发表于 2024-8-21 08:29:50

不是吧,参数类型是JSON数组类型,JSON数组里的元素是JSON对象,你说这算支持还是不支持对象传入?

Mr.Hu 发表于 2024-8-21 08:31:21

当然传入的方式活字格肯定做了处理,名义上叫对象,但人家后台做了处理,我们纠结这些概念上的干啥

Mr.Hu 发表于 2024-8-21 08:51:10

我理解lovert大神说的是传统编程意义上的规则,错是没错,对象得保存在内存里,内存还有看对象类型,哪些放托管区,哪些放非托管区,这样探讨就不用讨论活字格了,直接编程吧。但这是平台,平台就是颠覆和创新,实业主义,叫啥不重要,能提高开发效率就是平台的宗旨,对吧?:lol

lovert 发表于 2024-8-21 11:27:09

问题是设计的时候服务端压根就不知道你JSON对象的结构,你自己还是要在服务端设置结构层次,相当于你还是要手动设置反序列化,服务端和前端是两台电脑

Mr.Hu 发表于 2024-8-21 11:29:04

活字格的服务端命令参数里,服务端的JSON数组可以事先设置结构的,不用解析。不知道你用过没,那个设置很方便的。

Mr.Hu 发表于 2024-8-21 11:30:47

当然只是简单层级的JSON数组哈,复杂结构的估计不行,不过一般也用不到。实在不行,可以考虑序列化和反序列化插件的功能。

Brian.Zhang 发表于 2024-8-22 10:30:48

如楼上大佬所说,此处当前只会考虑的基础类型、数组类型,如果有json相关需求,还是建议配合JSON序列化和反序列化插件来使用哈
页: [1] 2
查看完整版本: 服务端命令参数类型不够用