toJson method
Converts this result to JSON format.
Useful for serialization, logging, and debugging. Note that complex payload objects may not serialize completely if they don't implement toJson().
Example:
final json = result.toJson();
print('Result: $json');
Returns a JSON-serializable map
Implementation
Map<String, dynamic> toJson() {
final Map<String, dynamic> json = {
'isSuccess': isSuccess,
'error': error,
'timestamp': timestamp.toIso8601String(),
'interactionId': interactionId,
'metadata': metadata,
};
// Handle data
if (data != null) {
json['data'] = data;
}
// Handle payload - try toJson() method or leave as-is
if (payload != null) {
try {
final dynamic obj = payload;
json['payload'] = obj.toJson();
json['payloadType'] = payload.runtimeType.toString();
} catch (e) {
// Payload doesn't have toJson() - store type info only
json['payloadType'] = payload.runtimeType.toString();
json['hasPayload'] = true;
}
}
return json;
}