package foundation.icall.callin; import foundation.json.IJSONProvider; import foundation.json.IJSONWriter; public class ReceivedFields implements IJSONProvider { private NamedReceivedFields master; private NamedReceivedFields detail; public ReceivedFields() { master = new NamedReceivedFields(); detail = new NamedReceivedFields(); } public NamedReceivedFields getMaster() { return master; } public NamedReceivedFields getDetail() { return detail; } @Override public void writeJSON(IJSONWriter writer) { writer.beginObject(); writeJSONBody(writer); writer.endObject(); } public void writeJSONBody(IJSONWriter writer) { boolean existsDetail = !detail.isEmpty(); //1. 只有 master if (!existsDetail) { master.writeJSONBody(writer); return; } //2.1 先打印 master writer.beginObject("master"); master.writeJSONBody(writer); writer.endObject(); writer.beginObject("details"); detail.writeJSONBody(writer); writer.endObject(); } }