记一次排查:接口返回值写入excel后,从单元格copy出来的数据会带有多重引号的问题

科技资讯 投稿 6300 0 评论

记一次排查:接口返回值写入excel后,从单元格copy出来的数据会带有多重引号的问题

恰好为了测试,我写了一个全量用户的生产、测试环境调用接口返回结果进行对比的脚本,于是发现了题中的问题:两个php服务里的接口返回值写入xlsx后,直接copy出来是正常的json串,golang的接口返回值copy出来变成双重引号如图

排查过程:

 

php服务响应头如下:

首先排除TimeStamp,从名称上就可以看出来不会对返回值格式或内容有任何影响;

 

接口在return response之前并没有序列化,而是直接返回了object对象?

序列化与反序列化。

因为不同的客户端、服务端可能使用的语言不同,为了兼容都是用序列化之后的数据进行传输,比如前端js将页面参数序列化之后传递给后端java服务。

4、于是让开发排查代码里是不是没有作序列化,但是出人意料的是,go代码里是做了序列化才返回的。

 

所以猜想会不会是返回值多了个隐形的换行符,然后在pacharm的cmd里调一下接口看看,果然go服务返回体尾巴上换行了,而php则不会

6、于是在写入excel之前把返回值rstrip(一下做最后的确认,结果从excel复制出来的数据真的没有多重引号了

至此,揪出来这个go服务的bug!

 

编程笔记 » 记一次排查:接口返回值写入excel后,从单元格copy出来的数据会带有多重引号的问题

赞同 (38) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽