in dubbo/codec/decoder.py [0:0]
def read_object(self):
"""
读取一个对象
:return:
"""
result = {}
self.objects.append(result)
value = self.read_byte()
if 0x60 <= value <= 0x6f:
ref = value - 0x60
else:
ref = self.read_int()
field_names = self.field_names[ref]
for field_name in field_names:
field_value = self.read_next()
result[field_name] = field_value
path = self.paths[ref]
if path == 'java.math.BigDecimal':
result = float(result['value']) or 0
self.objects[-1] = result
elif path == 'java.math.BigInteger':
result = int(result['value'])
self.objects[-1] = result
return result