找回密码
 立即注册

QQ登录

只需一步,快速开始

阿凡佬

中级会员

2

主题

17

帖子

541

积分

中级会员

积分
541
阿凡佬
中级会员   /  发表于:2022-5-13 14:53  /   查看:2536  /  回复:3
之前发了个帖子
活字格里如何动态合成JSON对象?
https://gcdn.grapecity.com.cn/fo ... 7&fromuid=66001
(出处: 葡萄城产品技术社区)


8.0里增加了一个操作单元格命令,我们现在能设计更灵活的系统了,点赞

不过新的问题也随之出现,比如下面这个“设置数据源(对象数组)” 的参数要求是一个JSON对象数组


比如我有这么一张表
值 | 名称 | 分类
1      A       一
2      B       一
3      C       一
4      D       一
...     ...        ...
1     E         二
2     F         二
4     H         二
...     ...         ...

然后我有一个值数组
[2,3,4]
当我设置为分类一的时候,这个数组应当显示为 B C D,
JSON对象应当是
[{"value":2,"label":"B"},{"value":3,"label":"C"},{"value":4,"label":"D"}]


当我设置为分类二的时候,因为分类二中并没有值为3的记录,所以应当显示为查询到的第一项,即的这个数组应当显示为 F C H,
JSON对象应当是
[{"value":2,"label":"F"},{"value":3,"label":"C"},{"value":4,"label":"H"}]


如何多条件地、动态地合成这个JSON对象?
我尝试过一些插件,比如JSON序列化和反序列化,但是基本都是用于对接第三方系统用的,而且假定了你已经具有了这么一个JSON对象,然后对这个对象进行操作。
也尝试过用公式拼接字符串,但返回值的引号被强制转义而导致不能识别。


因此,
我希望活字格能够提供更多工具型的命令或者插件

比如JSON相关的:新增值、新增字段、删除字段、插入字段、数组去重、查询值 等等
比如文本处理相关的:数字转英文金额、更好的日期显示(比如几天前、几小时前) 等等

而且完全可以使用黑箱模式设计
输入=>处理=>输出
比如"更好的日期显示", 我只需要传入一个日期变量,出来即是一个字符串,甚至变量名称都不用改变,能够直接用于后续的命令。


再来点题外话,
其实对于我们这种编程业余爱好者来说,最难受的就是造轮子了,我们既没有接受过系统训练,也没有专业程序员的算法能力,写出来的东西不严谨,往往遇到一些特殊情况代码就报错,碰到报错也仅仅只能用try catch然后返回一个空值这样去处理。而且受制于信息茧房,往往轮子造好了,才发现别人已经有成熟的库可以调用了。那时候我刚接触.net的时候,当时还不知道JSON、XML、CSV这些对象持久化存储的解决方案,愣是自己写了一个类,用|和,做分隔符实现二维数据的读写和增删改查。最后当我知道NewtonSoftJSON.dll这个库的时候,气的拍桌子。
所以在造轮子这个事情上,我还是觉得专业的事情交给专业的人来做,希望活字格官方能提供更多的"轮子"!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

3 个回复

倒序浏览
阿凡佬
中级会员   /  发表于:2022-5-13 15:46:01
沙发
David.Zhong 发表于 2022-5-13 15:26
我也支持大佬一个,其实大佬的上个帖子,我就在帮大佬推进这个事情了,我在等反馈~也辛苦大佬等下我哈~

对JSON的支持能让活字格的数据处理能力直接上一个档次。我来尽情地发挥下想象力找出它的应用场景:
-比如字典表,以后我们是不是就不用做字典表这种东西了?一个JSON数组就可以代替字典表
-还有一些不参与业务逻辑的字段,我是不是可以直接省略了?比如产品的一些参数,我只用放在一个“备注”字段里面,然后用JSON数据源插件加入表格
-我甚至可以用图文列表做一张透视表,甚至自己写好逻辑,还能实现填报功能
-页面之间的传值也更方便了,一个JSON对象传来传去就可以了

我甚至还能想出一大堆,真是越想越激动! 哈哈,拜托推进开发部,在下一个版本里就实现这个功能吧!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部