From Erights
There is interest (2009-01-07) in using CapTP in Cajita systems, with a JSON syntax for the message/serialization layer. Therefore, this page defines a JSON syntax for Data-E.
Except for literals, it is exactly the same as the Data-E in TermL format as implemented by deASTKit.
Literals
String literals are copied as-is into JSON (rationale: compactness, readability). The three other types of literals are tagged, since JSON does not have character values and (we assume) JavaScript-based JSON implementations will not distinguish floats from integers.
| Data-E Source | JSON
|
String | "foo" | "foo"
|
Integer | 9 | ["int", 9]
|
Float64 | 9.99 | ["float64", 9.99]
|
Character | 'f' | ["char", "f"]
|
Import and ibid
Data-E Source | JSON
|
foo | ["import", "foo"]
|
t_9 | ["ibid", 9]
|
Call
Data-E Source | JSON
|
foo.bar(baz...) | ["call", foo, "bar", [baz...]]
|
Define
Data-E Source | JSON
|
def t_9 := bar | ["define", 9, bar]
|
def t_9 := ...t_9... | ["defrec", 9, ...["ibid", 9]...]
|