找回密码
 立即注册

QQ登录

只需一步,快速开始

四月五号

注册会员

1

主题

4

帖子

13

积分

注册会员

积分
13
  • 392

    金币

  • 1

    主题

  • 4

    帖子

最新发帖
四月五号
注册会员   /  发表于:2023-1-4 17:54  /   查看:1944  /  回复:8
1金币
本帖最后由 Ellia.Duan 于 2023-1-12 14:38 编辑

【Spreadjs:15,gcexcel:5.2.0】 前端通过spreadjs生成json。java后端GCExcel用json生成Excel时报错:java.lang.IllegalStateException: JsonParser#getString() is valid only KEY_NAME, VALUE_STRING, VALUE_NUMBER parser states. But current parser state is START_OBJECT(后端报错如下) 。看错误提示像是Json中只能有字符型和数字型,但是出现了对象型。json有问题

image.png336112670.png

前端代码:

var spread1 = GC.Spread.Sheets.findControl(document.getElementById('ss'));
var jsonString = JSON.stringify(spread1.toJSON(serializationOption));



后端代码:
image.png412973021.png




spreadjs生成的JSON.zip

731 Bytes, 下载次数: 99

最佳答案

查看完整内容

通过数据绑定,能够将后端的数据给前端展示,也能将前端页面填写的数据保存到后端。此时就不仅仅要求绑定路径是一个字符串了。而更适合是一个对象。但是目前绑定路径只支持字符串,所以在后端根据json生成Excel时会报错。 我们现在的做法是:模板中绑定路径不传值,新增一个接口,将绑定路径和模板进行解耦。前端调接口单独用来保存绑定路径。此方案目前曲线救国的方式,实现后端解析json,成功将填写数据落地到数据库表中。

8 个回复

倒序浏览
最佳答案
最佳答案
四月五号
注册会员   /  发表于:2023-1-4 17:54:01
来自 7#
通过数据绑定,能够将后端的数据给前端展示,也能将前端页面填写的数据保存到后端。此时就不仅仅要求绑定路径是一个字符串了。而更适合是一个对象。但是目前绑定路径只支持字符串,所以在后端根据json生成Excel时会报错。
我们现在的做法是:模板中绑定路径不传值,新增一个接口,将绑定路径和模板进行解耦。前端调接口单独用来保存绑定路径。此方案目前曲线救国的方式,实现后端解析json,成功将填写数据落地到数据库表中。

评分

参与人数 1金币 +200 收起 理由
Ellia.Duan + 200

查看全部评分

回复 使用道具 举报
四月五号
注册会员   /  发表于:2023-1-4 18:14:40
2#
麻烦老师帮忙看看,是因为spreadJs和GCExcel版本问题吗?
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-1-4 18:40:59
3#
本帖最后由 Ellia.Duan 于 2023-1-5 09:40 编辑

已复现您的问题,这边将深入调研下原因,待有进展及时通知您。[DOCXLS-7365]
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-1-5 14:37:02
4#
您好,经过调研,造成报错的原因是:json中的绑定路径无效导致,绑定路径只能是“字符串”。所以研发团队这边将在V6.0.3版本修复此问题,同时丢弃无效数据。
image.png506631469.png
回复 使用道具 举报
四月五号
注册会员   /  发表于:2023-1-5 16:34:50
5#
Ellia.Duan 发表于 2023-1-5 14:37
您好,经过调研,造成报错的原因是:json中的绑定路径无效导致,绑定路径只能是“字符串”。所以研发团队这 ...

我现在大概想到两个方案:一是前端不传,二是要后端等V6.0.3版本
方案一的话,那请问老师:现在前端spreadjs有没有忽略传递绑定路径的属性? 现在想前端传给后端的json不带绑定路径。现在有个includeBindingSource=false。但是不行。
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-1-5 16:57:38
6#
四月五号 发表于 2023-1-5 16:34
我现在大概想到两个方案:一是前端不传,二是要后端等V6.0.3版本
方案一的话,那请问老师:现在前端spre ...

您好,这边做了一个模板进行数据绑定,如下图所示

image.png432037047.png
创建字段person 对象,然后添加属性name,age,sex ,然后拖拽到单元格中。最后导出的ssjson文件中bindingPath是字符串。您这边是如何设计的呢?bindingPath是一个对象
image.png767183227.png
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-1-13 09:13:54
8#
感谢您提供的解决方案及问题反馈,这边为您赠送了金币,请您查收。待GcExcel修复此问题后,这边将及时通知您。
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-2-23 11:54:05
9#
Ellia.Duan 发表于 2023-1-13 09:13
感谢您提供的解决方案及问题反馈,这边为您赠送了金币,请您查收。待GcExcel修复此问题后,这边将及时通知 ...

您好,GcExcel已在v6.0.3版本中修复了此问题,您可以下载测试一下。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部