json.extract! db, *Db.json_keys json.contents do root = db.root_folder json.extract! root, *DbFolder.json_keys json.subfolders(root.subfolders) do |folder| json.extract! folder, *DbFolder.json_keys end json.streams(root.db_streams) do |stream| json.extract! stream, *DbStream.json_keys json.elements(stream.db_elements) do |element| json.extract! element, *DbElement.json_keys end end end