我正在将一些代码从.Net移植到python。
在某种程度上,我们需要将任意复杂的json从一种格式转换为另一种格式。
例如:
{"Query":
{
"Boolean": {
"Operator": "And",
"Parameters": [
{"Equal": {"Name": "Bob"}},
{"Boolean": ...}
]
}
}
}为了..。
{"Query":
{
"Left": {"Name":"Bob"},
"Right": {...},
"Operator": "And"
}
}我们使用Json.Net优秀的Newtonsoft.Json.JsonConverter来连接序列化/反序列化过程。我们有2个JsonConverter,可以从相同的对象到这些格式中的每种格式进行转换。
Public Overrides Function CanConvert(objectType As Type) As Boolean
Return GetType(QueryDefinition).IsAssignableFrom(objectType)
End Function这意味着我们可以挑选出我们想要手动处理的位,并允许股票转换器执行我们不需要特殊处理的所有属性/值。
在Python中有没有类似的机制/框架?或者我将不得不以递归方式手动解析每个属性?
发布于 2013-03-18 17:42:09
您可以将默认JSONEncoder子类化。
来自:http://docs.python.org/2/library/json.html
要使用自定义JSONEncoder子类(例如,覆盖默认()方法以序列化其他类型的子类),请使用cls kwarg指定它;否则将使用JSONEncoder。
http://docs.python.org/2/library/json.html#json.JSONEncoder
用法示例:Custom JSON encoder in Python 2.7 to insert plain JavaScript code
https://stackoverflow.com/questions/15473622
复制相似问题