|
// 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)")
|