Class TeaVmJson

java.lang.Object
net.sourceforge.plantuml.teavm.headless.TeaVmJson

public final class TeaVmJson extends Object
Small TeaVM helper to build JSON results from Java without hand-rolling the escaping.

Instead of assembling JSON text character by character (and getting quoting, newlines and control-character escapes right by hand), the headless entry point builds a native JS object/array through these @JSBody helpers and serializes it with the platform's JSON.stringify. This mirrors the stringify helper already used by TeaVmScriptLoader.

All methods are TeaVM-only (they compile to plain JS); they are not meant to be called from a normal JVM.

  • Method Summary

    Modifier and Type
    Method
    Description
    static void
    addStringSafe(org.teavm.jso.JSObject json, String key, String value)
     
    static org.teavm.jso.JSObject
     
    static org.teavm.jso.JSObject
     
    static void
    push(org.teavm.jso.JSObject arr, String value)
    Appends a string to a JS array.
    static void
    pushObject(org.teavm.jso.JSObject arr, org.teavm.jso.JSObject value)
    Appends a nested object/array to a JS array.
    static void
    putBoolean(org.teavm.jso.JSObject obj, String key, boolean value)
    Sets obj[key] = value for a boolean value.
    static void
    putInt(org.teavm.jso.JSObject obj, String key, int value)
    Sets obj[key] = value for an integer value.
    static void
    putObject(org.teavm.jso.JSObject obj, String key, org.teavm.jso.JSObject value)
    Sets obj[key] = value for a nested object/array value.
    static void
    putString(org.teavm.jso.JSObject obj, String key, String value)
    Sets obj[key] = value for a string value.
    static String
    stringify(org.teavm.jso.JSObject obj)
    Serializes a JS object/array to a JSON string with the native JSON.stringify.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • newObject

      public static org.teavm.jso.JSObject newObject()
      Returns:
      a fresh, empty JS object ({}).
    • newArray

      public static org.teavm.jso.JSObject newArray()
      Returns:
      a fresh, empty JS array ([]).
    • putString

      public static void putString(org.teavm.jso.JSObject obj, String key, String value)
      Sets obj[key] = value for a string value.
    • addStringSafe

      public static void addStringSafe(org.teavm.jso.JSObject json, String key, String value)
    • putInt

      public static void putInt(org.teavm.jso.JSObject obj, String key, int value)
      Sets obj[key] = value for an integer value.
    • putBoolean

      public static void putBoolean(org.teavm.jso.JSObject obj, String key, boolean value)
      Sets obj[key] = value for a boolean value.
    • putObject

      public static void putObject(org.teavm.jso.JSObject obj, String key, org.teavm.jso.JSObject value)
      Sets obj[key] = value for a nested object/array value.
    • push

      public static void push(org.teavm.jso.JSObject arr, String value)
      Appends a string to a JS array.
    • pushObject

      public static void pushObject(org.teavm.jso.JSObject arr, org.teavm.jso.JSObject value)
      Appends a nested object/array to a JS array.
    • stringify

      public static String stringify(org.teavm.jso.JSObject obj)
      Serializes a JS object/array to a JSON string with the native JSON.stringify.
      Parameters:
      obj - a JS object or array
      Returns:
      its JSON representation, or null if obj is null