Skip to content

happi/json-transform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

json-transform

The parse transform json_parser lets you write Json structures directly in your Erlang code, and it will be translated into Erlang terms in accordance with EEP-18.

For now it only handles one of the suggested formats in EEP-18, one could possibly implement options to the transform to get other translations.

You use the special marker: <<{ Json-Term }>> to use the json syntax:

An empty json object {} is translated into [{}].

An json object with fields {Label : Term} is translated into [{<<"Label>>, translate(Term)}].

A json array [1,2,3] is translated into a list: [1,2,3].

A json string "foo" is translated into a binary string <<"foo">>.

A json integer is translated into an Erlang integer and a float into a float.

The json constants true, false, and null are translated into the atoms 'true', 'false', and 'null'.

A variable reference is left as it is, it is assumed to contain an Erlang representation of a json object.

Example:

foo() -> <<{ { "foo" : 42 } }>>.

is translated into foo() -> [{<<"foo">>, 42}].

Due to the precedence rules of the ":" and "-" operators in Erlang there is a small inconvenience, you have to put negative numbers in objects within parentheses.

i.e. <<{ { "foo" : (-42) } }>>. is ok but not <<{ { "foo" : -42 } }>>. Note that negative numbers are ok by them selves or in arrays: <<{ [-42] }>>. is ok.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages