package se.unlogic.standardutils.json; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; public class JsonObject implements JsonNode { private final Map<String, JsonNode> fields = new HashMap<String, JsonNode>(); public String toJson(StringBuilder stringBuilder) { stringBuilder.append("{"); Iterator<Entry<String, JsonNode>> iterator = fields.entrySet().iterator(); Entry<String, JsonNode> field; while(iterator.hasNext()) { field = iterator.next(); stringBuilder.append(field.getKey()); stringBuilder.append(":"); field.getValue().toJson(stringBuilder); if(iterator.hasNext()) { stringBuilder.append(","); } } stringBuilder.append("}"); return stringBuilder.toString(); } public void putField(String key, JsonNode value) { this.fields.put(key, value); } public void removeField(String key) { this.fields.remove(key); } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((fields == null) ? 0 : fields.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; JsonObject other = (JsonObject) obj; if (fields == null) { if (other.fields != null) return false; } else if (!fields.equals(other.fields)) return false; return true; } }