You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
833 B

5 years ago
Json := Object clone do(
squareBrackets := method(
l := list()
l appendProto(Json)
call message arguments foreach(arg,
a := Json doMessage(arg)
l push(a)
)
l
)
curlyBrackets := method(
map := Map clone
map appendProto(Json)
map colon := method(key, value,
cleanKey := key asMutable removePrefix("\"") removeSuffix("\"")
self atPut(cleanKey,value)
)
call message arguments foreach(arg,
map doMessage(arg)
)
map
)
)
j := Json {
"name": "alice",
"job": "agent",
"aliases": [
"tanya",
"isla"
],
"neste": [
"tanya",
"isla"
]
}
k := Json [
{"name": "ted", "age": 22},
{"name": "sue", "age": 31}
]
q := Json [
["so", ["nested"]]
]
j at("name") println
j at("aliases") println
k at(0) at("age") println
q println