我正在将一些代码从 .Net 移植到 python。
有时,我们需要将任意复杂的 json 从一种格式转换为另一种格式。
Eg:
{"Query":
{
"Boolean": {
"Operator": "And",
"Parameters": [
{"Equal": {"Name": "Bob"}},
{"Boolean": ...}
]
}
}
}
To...
{"Query":
{
"Left": {"Name":"Bob"},
"Right": {...},
"Operator": "And"
}
}
我们正在使用 Json.Net 的优秀Newtonsoft.Json.JsonConverter
挂钩序列化/反序列化过程。我们有 2JsonConverter
从相同的对象与这些格式之间进行转换。
Public Overrides Function CanConvert(objectType As Type) As Boolean
Return GetType(QueryDefinition).IsAssignableFrom(objectType)
End Function
这意味着我们可以挑选出我们想要手动处理的位,并允许库存转换器执行我们不需要特殊处理的所有属性/值。
Python中有没有等效的机制/框架?或者我是否必须手动递归地解析每个属性?
您可以对默认 JSONEncoder 进行子类化。
From: http://docs.python.org/2/library/json.html http://docs.python.org/2/library/json.html
“要使用自定义 JSONEncoder 子类(例如,重写 default() 方法来序列化其他类型的子类),请使用 cls kwarg 指定它;否则使用 JSONEncoder。”
http://docs.python.org/2/library/json.html#json.JSONEncoder http://docs.python.org/2/library/json.html#json.JSONEncoder
使用示例:Python 2.7 中的自定义 JSON 编码器用于插入纯 JavaScript 代码 https://stackoverflow.com/questions/13188719/custom-json-encoder-in-python-2-7-to-insert-plain-javascript-code?rq=1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)