A JSON implementation dealing with multiple / circular references