// retoor <retoor@molodetz.nl>
import "json" for Json
System.print("=== Json Module Demo ===\n")
System.print("--- Parsing JSON ---")
var jsonString = "{\"name\":\"Alice\",\"age\":30,\"active\":true}"
var obj = Json.parse(jsonString)
System.print("Parsed: %(obj)")
System.print("Name: %(obj["name"])")
System.print("Age: %(obj["age"])")
System.print("Active: %(obj["active"])")
System.print("\n--- Parsing Arrays ---")
var arrayJson = "[1, 2, 3, \"four\", true, null]"
var arr = Json.parse(arrayJson)
System.print("Parsed array: %(arr)")
System.print("Third element: %(arr[2])")
System.print("\n--- Nested Objects ---")
var nestedJson = "{\"user\":{\"name\":\"Bob\",\"address\":{\"city\":\"New York\",\"zip\":\"10001\"}},\"tags\":[\"admin\",\"user\"]}"
var nested = Json.parse(nestedJson)
System.print("City: %(nested["user"]["address"]["city"])")
System.print("First tag: %(nested["tags"][0])")
System.print("\n--- Stringify (compact) ---")
var data = {
"name": "Charlie",
"scores": [85, 92, 78],
"metadata": {
"created": "2024-01-15",
"version": 1
}
}
System.print(Json.stringify(data))
System.print("\n--- Stringify (pretty, 2 spaces) ---")
System.print(Json.stringify(data, 2))
System.print("\n--- Stringify (pretty, 4 spaces) ---")
System.print(Json.stringify(data, 4))
System.print("\n--- Special Values ---")
var special = {
"string": "Hello\nWorld",
"number": 42.5,
"boolean": false,
"null": null,
"empty_array": [],
"empty_object": {}
}
System.print(Json.stringify(special, 2))
System.print("\n--- Round-trip ---")
var original = {"key": "value", "list": [1, 2, 3]}
var jsonified = Json.stringify(original)
var restored = Json.parse(jsonified)
System.print("Original: %(original)")
System.print("JSON: %(jsonified)")
System.print("Restored: %(restored)")