Python CJSON编码自定义对象

我正在更新使用旧版cjson加速其json编码的旧项目。 它还有一个名为JSONString的自定义类(它将字符串设置为其'value'属性),用于与数据库进行通信。

它用来调用cjson.encode((包含JSONString的字典),(JSONSTRING的自定义编码函数)),但更新版本的cjson已将其参数更改为仅接受一个参数,并且不公开任何其他可能允许自定义编码过程。 在没有自定义编码器的情况下编码字典会引发EncodeError(对象不是JSON编码)。

我现在的选择是要么找出如何在cjson中使用自定义编码器,修改cjson源(试图避免修补库),或者使其在操作之前插入到字典中的JSONString类型转换为字符串,但我试图避免在代码中添加“修复”(分隔和可重用性以及所有这些)。 以某种方式修改JSONString,以便编码器接受其字符串值而不是抛出异常也可以,但我不知道python的怪癖。 我可以理解为什么cjson可能不允许自定义编码器(速度原因),但如果没有办法,我可能只需要找到别的东西。

任何建议将不胜感激。


仔细看看我没有回复的帖子,记住我从来没有把这个标记为答案。 Yavar的帖子确实有帮助; python有一个增强版的cjson。 它运作良好,但有时会有一些有趣的名称冲突,所以要注意这一点。

http://python.cx.hu/python-cjson/

链接地址: http://www.djcxy.com/p/47793.html

上一篇: Python CJSON encoding custom objects

下一篇: How to encode to JSON encoded array from non sequential array