php的json_encode和javascript的JSON.stringify不一致

一直用json-editor来做配置的界面,因为大部分的数据都是使用json的,前段在配合oneOf使用的时候, 发现新创建的内容,界面没有问题,保存的是没有问题,然后读取出来之后,显示的界面就一团糟了, 应该说对于读取的数据格式是属于哪一种字段解析错误了,所有的都只认oneOf的第一个。

最后反复调试,输出日志,发现在javascript侧的JSON数据结构比如空的字符串,在JSON.stringify后, 显示的是空字符串,eval解析回来还是空字符串,而相同的数据,在服务器的php侧,使用json_encode后, 空的字符串被替换成了null,然后json_decode的时候,出来的还是null,如果直接拿到客户端使用, 匹配的将是object的null,而不是string类型。在使用javascript侧进行eval了之后,出来的还是null, 与原始的数据不一致。

最后在将这段数据进行提交给服务器的时候,在客户端这边先进行JSON.stringify,服务器这边直接保存这个 字符串,然后json-editor的匹配就正常了

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据