package foundation.json.tree; import foundation.json.JSONBuilder; import foundation.json.JType; public class JObjectNode extends JNode { private String name; public JObjectNode(String fullName, String name, int level) { super(fullName, name, JType.Object, level); } @Override public void toJSON(JSONBuilder builder) { builder.beginObject(name); for (JNode node: children) { node.toJSON(builder); } builder.endObject(); } @Override public void toBand(JBand band) { for (JNode node: children) { node.toBand(band); } } @Override protected void loadBandItem(JBand band, JBandItem item) { int itemLevel = level + 1; //1. 加载当前 Item JNode node = JNode.createInstance(this, item.getName(itemLevel), item.getType(itemLevel), itemLevel); node.loadBandItem(band, item); //2. 尝试加载后面的 Item while (band.hasNext(name, level)) { item = band.next(); node = JNode.createInstance(this, item.getName(itemLevel), item.getType(itemLevel), itemLevel); node.loadBandItem(band, item); } } }