### Question:
TableMeta implements ProtoObject<CatalogProtos.TableProto>, GsonObject, Cloneable { @Override public String toJson() { mergeProtoToLocal(); return CatalogGsonHelper.toJson(this, TableMeta.class); } TableMeta(String dataFormat, KeyValueSet propertySet);  TableMeta(TableProto proto); String getDataFormat(); void setPropertySet(KeyValueSet options); KeyValueSet getPropertySet(); void putProperty(String key, String val); boolean containsProperty(String key); String getProperty(String key); String getProperty(String key, String defaultValue); Map<String,String> toMap(); boolean equals(Object object); int hashCode(); @Override Object clone(); String toString(); TableProto getProto(); @Override String toJson(); void mergeProtoToLocal();  }### Answer:
@Test public void testToJson() { String json = meta.toJson(); TableMeta fromJson = CatalogGsonHelper.fromJson(json, TableMeta.class); assertEquals(meta, fromJson); assertEquals(meta.getProto(), fromJson.getProto()); }