package org.skywalking.apm.collector.worker.segment.entity; import java.util.List; import java.util.Map; /** * @author pengys5 */ public enum JsonBuilder { INSTANCE; public void append(StringBuilder builder, String name, String value, boolean first) { if (!first) { builder.append(","); } builder.append("\"").append(name).append("\":\"").append(value).append("\""); } public void append(StringBuilder builder, String name, Number value, boolean first) { if (!first) { builder.append(","); } builder.append("\"").append(name).append("\":").append(value); } public void append(StringBuilder builder, String name, List<?> value, boolean first) { if (!first) { builder.append(","); } builder.append("\"").append(name).append("\":"); builder.append("["); boolean isFirst = true; for (int i = 0; i < value.size(); i++) { DeserializeObject deserializeObject = (DeserializeObject) value.get(i); if (!isFirst) { builder.append(","); } builder.append(deserializeObject.getJsonStr()); isFirst = false; } builder.append("]"); } public void append(StringBuilder builder, String name, Map<String, ?> tagsWithStr, boolean first) { if (!first) { builder.append(","); } builder.append("\"").append(name).append("\":"); builder.append("{"); boolean isFirst = true; for (Map.Entry<String, ?> entry : tagsWithStr.entrySet()) { String key = entry.getKey(); Object value = entry.getValue(); if (!isFirst) { builder.append(","); } if (value instanceof String) { builder.append("\"").append(key).append("\":\"").append(value).append("\""); } else { builder.append("\"").append(key).append("\":").append(value); } isFirst = false; } builder.append("}"); } }