def json_compat_obj_decode_helper(self, data_type, obj):
if isinstance(data_type, bv.StructTree):<EOL><INDENT>return self.decode_struct_tree(data_type, obj)<EOL><DEDENT>elif isinstance(data_type, bv.Struct):<EOL><INDENT>return self.decode_struct(data_type, obj)<EOL><DEDENT>elif isinstance(data_type, bv.Union):<EOL><INDENT>if self.old_style:<EOL><INDENT>return self.decode_union_old(data_type, obj)<EOL><DEDENT>else:<EOL><INDENT>return self.decode_union(data_type, obj)<EOL><DEDENT><DEDENT>elif isinstance(data_type, bv.List):<EOL><INDENT>return self.decode_list(<EOL>data_type, obj)<EOL><DEDENT>elif isinstance(data_type, bv.Map):<EOL><INDENT>return self.decode_map(<EOL>data_type, obj)<EOL><DEDENT>elif isinstance(data_type, bv.Nullable):<EOL><INDENT>return self.decode_nullable(<EOL>data_type, obj)<EOL><DEDENT>elif isinstance(data_type, bv.Primitive):<EOL><INDENT>return self.make_stone_friendly(data_type, obj, False)<EOL><DEDENT>else:<EOL><INDENT>raise AssertionError('<STR_LIT>' % data_type)<EOL><DEDENT>
See json_compat_obj_decode() for argument descriptions.