A JSON implementation that deals with multiple / circular references