MCPcopy Create free account
hub / github.com/faceless2/zeroconf / toString

Method toString

src/main/com/bfo/zeroconf/Stringify.java:135–202  ·  view source on GitHub ↗

A quick single-method JSON writer, intended to write Maps/Lists/Strings/Numbers/Booleans

(Object o)

Source from the content-addressed store, hash-verified

133 * A quick single-method JSON writer, intended to write Maps/Lists/Strings/Numbers/Booleans
134 */
135 static String toString(Object o) {
136 if (o == null) {
137 return null;
138 } else if (o instanceof CharSequence) {
139 CharSequence s = (CharSequence)o;
140 StringBuilder sb = new StringBuilder();
141 sb.append('"');
142 for (int i=0;i<s.length();i++) {
143 char c = s.charAt(i);
144 if (c == '\n') {
145 sb.append("\\n");
146 } else if (c == '\r') {
147 sb.append("\\r");
148 } else if (c == '\t') {
149 sb.append("\\t");
150 } else if (c == '"') {
151 sb.append("\\\"");
152 } else if (c == '\\') {
153 sb.append("\\\\");
154 } else if (Character.isISOControl(c)) { // 0x00-0x1F, 0x80-0x9F
155 String t = Integer.toHexString(c);
156 sb.append("\\u");
157 for (int j=t.length();j<4;j++) {
158 sb.append('0');
159 }
160 sb.append(t);
161 } else {
162 sb.append(c);
163 }
164 }
165 sb.append('"');
166 return sb.toString();
167 } else if (o instanceof Map) {
168 Map<?,?> m = (Map<?,?>)o;
169 StringBuilder sb = new StringBuilder();
170 sb.append('{');
171 boolean first = true;
172 for (Map.Entry<?,?> e : m.entrySet()) {
173 if (!first) {
174 sb.append(',');
175 }
176 sb.append(toString((String)e.getKey()));
177 sb.append(':');
178 sb.append(toString(e.getValue()));
179 first = false;
180 }
181 sb.append('}');
182 return sb.toString();
183 } else if (o instanceof List) {
184 List<?> l = (List<?>)o;
185 StringBuilder sb = new StringBuilder();
186 sb.append('[');
187 boolean first = true;
188 for (Object p : l) {
189 if (!first) {
190 sb.append(',');
191 }
192 sb.append(toString(p));

Callers 8

writeNameMethod · 0.95
toStringMethod · 0.95
queryMethod · 0.95
processAnswerMethod · 0.95
toStringMethod · 0.95
setNameMethod · 0.95
setFQDNMethod · 0.95
parseMethod · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected