All of our DataType classes provide toJson which serializes the type following the delta protocol schema serialization rules https://github.com/delta-io/delta/blob/master/PROTOCOL.md#schema-serialization-format. We use this method to serialize the physical and logical schemas in ScanStateRow.
toJson is only tested by the 2 round-trip tests in DefaultJsonHandlerSuite. We should add more thorough tests for toJson.