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.
|
|
|
Json := Object clone do(
|
|
|
|
|
|
|
|
squareBrackets := method(
|
|
|
|
l := list()
|
|
|
|
l appendProto(Json)
|
|
|
|
call message arguments foreach(arg,
|
|
|
|
l push(Json doMessage(arg))
|
|
|
|
)
|
|
|
|
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
|