public String toJson(@NotNull Map<String, Object> fields) { checkNotNull(fields, "fields == null"); Buffer buffer = new Buffer(); JsonWriter jsonWriter = JsonWriter.of(buffer); jsonWriter.setSerializeNulls(true); try { jsonWriter.beginObject(); for (Map.Entry<String, Object> fieldEntry : fields.entrySet()) { String key = fieldEntry.getKey(); Object value = fieldEntry.getValue(); jsonWriter.name(key); writeJsonValue(value, jsonWriter); } jsonWriter.endObject(); jsonWriter.close(); return buffer.readUtf8(); } catch (IOException e) { // should never happen as we are working with mem buffer throw new RuntimeException(e); } }
jsonWriter.beginArray(); for (Object item : (List) value) { writeJsonValue(item, jsonWriter); for (Map.Entry<String, Object> fieldEntry : fields.entrySet()) { jsonWriter.name(fieldEntry.getKey()); writeJsonValue(fieldEntry.getValue(), jsonWriter);
public String toJson(@Nonnull Map<String, Object> fields) { checkNotNull(fields, "fields == null"); Buffer buffer = new Buffer(); JsonWriter jsonWriter = JsonWriter.of(buffer); jsonWriter.setSerializeNulls(true); try { jsonWriter.beginObject(); for (Map.Entry<String, Object> fieldEntry : fields.entrySet()) { String key = fieldEntry.getKey(); Object value = fieldEntry.getValue(); jsonWriter.name(key); writeJsonValue(value, jsonWriter); } jsonWriter.endObject(); jsonWriter.close(); return buffer.readUtf8(); } catch (IOException e) { // should never happen as we are working with mem buffer throw new RuntimeException(e); } }
public String toJson(@Nonnull Map<String, Object> fields) { checkNotNull(fields, "fields == null"); Buffer buffer = new Buffer(); JsonWriter jsonWriter = JsonWriter.of(buffer); jsonWriter.setSerializeNulls(true); try { jsonWriter.beginObject(); for (Map.Entry<String, Object> fieldEntry : fields.entrySet()) { String key = fieldEntry.getKey(); Object value = fieldEntry.getValue(); jsonWriter.name(key); writeJsonValue(value, jsonWriter); } jsonWriter.endObject(); jsonWriter.close(); return buffer.readUtf8(); } catch (IOException e) { // should never happen as we are working with mem buffer throw new RuntimeException(e); } }
private static void writeJsonValue(Object value, JsonWriter jsonWriter) throws IOException { if (value == null) { jsonWriter.nullValue(); } else if (value instanceof String) { jsonWriter.value((String) value); } else if (value instanceof Boolean) { jsonWriter.value((boolean) value); } else if (value instanceof Number) { jsonWriter.value((Number) value); } else if (value instanceof CacheReference) { jsonWriter.value(((CacheReference) value).serialize()); } else if (value instanceof List) { jsonWriter.beginArray(); for (Object item : (List) value) { writeJsonValue(item, jsonWriter); } jsonWriter.endArray(); } else { throw new RuntimeException("Unsupported record value type: " + value.getClass()); } } }
private static void writeJsonValue(Object value, JsonWriter jsonWriter) throws IOException { if (value == null) { jsonWriter.nullValue(); } else if (value instanceof String) { jsonWriter.value((String) value); } else if (value instanceof Boolean) { jsonWriter.value((boolean) value); } else if (value instanceof Number) { jsonWriter.value((Number) value); } else if (value instanceof CacheReference) { jsonWriter.value(((CacheReference) value).serialize()); } else if (value instanceof List) { jsonWriter.beginArray(); for (Object item : (List) value) { writeJsonValue(item, jsonWriter); } jsonWriter.endArray(); } else { throw new RuntimeException("Unsupported record value type: " + value.getClass()); } } }