擅长:python、mysql、java
<p>被接受的方法解决了最初的困惑。在我的例子中<a href="https://stackoverflow.com/users/5404694/abhishek-jebaraj">this answer</a>给出了后续问题的相关线索,即将对象重新序列化为无引用JSON</p>
<p>我决定:</p>
<pre><code>import jsonref
import json
def ref_caster(o):
if isinstance(o, jsonref.JsonRef):
if isinstance(o, type(None)):
return None
else:
for json_type in [ dict, str, list, float, int, bool ]:
if isinstance(o, json_type):
return json_type(o)
with_ref_objs = jsonref.loads('''
{
"foo": {
"$ref": "#/def/obj"
},
"def": {
"obj": {
"bar": "baz"
}
}
}
''')
no_ref_str = json.dumps(with_ref_objs, default=ref_caster, indent=2)
print(no_ref_str)
</code></pre>
<p>输出:</p>
<pre><code>{
"foo": {
"bar": "baz"
},
"def": {
"obj": {
"bar": "baz"
}
}
}
</code></pre>