之前发了个帖子
活字格里如何动态合成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这个库的时候,气的拍桌子。
所以在造轮子这个事情上,我还是觉得专业的事情交给专业的人来做,希望活字格官方能提供更多的"轮子"!
|