Skip to content

Pretty printing

Eric Pailleau edited this page Jan 28, 2018 · 16 revisions

Pretty printing

jason:pp/1 use default options.

jason:pp(Json) -> string() | no_return()

jason:pp/2 with options :

  • {style, Style} where Style is an atom (see valid values below). 'k&r' by default.
  • {nl, NL} where NL is the newline character(s). "\n" by default.
  • {tab, Tab} where Tab is the tabulation character(s). " " (three blanks) by default.
jason:pp(Json, Options) -> string() | no_return()

Error handling :

catch jason:pp(A,[{style, unknown}]).
unknow_style

Kernighan and Ritchie's styles

'k&r'

{
   "menu": {
      "id": "file",
      "value": "File",
      "popup": {
         "menuitem": [
            {
               "value": "New",
               "onclick": "CreateNewDoc()"
            },
            {
               "value": "Open",
               "onclick": "OpenDoc()"
            },
            {
               "value": "Close", 
               "onclick": "CloseDoc()"
            }
         ]
      }
   }
}

'otbs'

{
   "menu": {
      "id": "file",
      "value": "File",
      "popup": {
         "menuitem": [
            {
               "value": "New",
               "onclick": "CreateNewDoc()"
            },{
               "value": "Open",
               "onclick": "OpenDoc()"
            },{
               "value": "Close", 
               "onclick": "CloseDoc()"
            }
         ]
      }
   }
}

'stroustrup'

{
   "menu": {
      "id": "file",
      "value": "File",
      "popup": {
         "menuitem": [
            {
               "value": "New",
               "onclick": "CreateNewDoc()"
            }
            ,{
               "value": "Open",
               "onclick": "OpenDoc()"
            }
            ,{
               "value": "Close", 
               "onclick": "CloseDoc()"
            }
         ]
      }
   }
}

Allman style

'allman'

{
   "menu": 
   {
      "id": "file",
      "value": "File",
      "popup": 
      {
         "menuitem": 
         [
            {
               "value": "New",
               "onclick": "CreateNewDoc()"
            },
            {
               "value": "Open",
               "onclick": "OpenDoc()"
            },
            {
               "value": "Close",
               "onclick": "CloseDoc()"
            }
         ]
      }
   }
}

Whitesmiths' style

'whitesmiths'

{
"menu": 
   {
   "id": "file",
   "value": "File",
   "popup": 
      {
      "menuitem": 
         [
            {
            "value": "New",
            "onclick": "CreateNewDoc()"
            },
            {
            "value": "Open",
            "onclick": "OpenDoc()"
            },
            {
            "value": "Close",
            "onclick": "CloseDoc()"
            }
         ]
      }
   }
}

Hortsmann style

'hortsmann'

{   "menu": 
    {   "id": "file",
        "value": "File",
        "popup": 
        {   "menuitem": 
            [
                {   "value": "New",
                    "onclick": "CreateNewDoc()"
                }
                ,
                {   "value": "Open",
                    "onclick": "OpenDoc()"
                }
                ,
                {   "value": "Close",
                    "onclick": "CloseDoc()"
                }
            ]
        }
    }
}

Pico style

'pico'

{  "menu": 
   {  "id": "file",
      "value": "File",
      "popup": 
      {  "menuitem": 
         [  {  "value": "New",
               "onclick": "CreateNewDoc()"  },
            {  "value": "Open",
               "onclick": "OpenDoc()"  },
            {  "value": "Close",
               "onclick": "CloseDoc()"  }  ]  }  }  }

Ratliff style

'ratliff'

{
   "menu": {
      "id": "file",
      "value": "File",
      "popup": {
         "menuitem": [
            {
               "value": "New",
               "onclick": "CreateNewDoc()"
               },
            {
               "value": "Open", 
               "onclick": "OpenDoc()"
               },
            {
               "value": "Close", 
               "onclick": "CloseDoc()"
               }
            ]
         }
      }
   }

LISP style

'lisp'

{
   "menu": {
      "id": "file",
      "value": "File",
      "popup": {
         "menuitem": [
            {
               "value": "New",
               "onclick": "CreateNewDoc()"},
            {
               "value": "Open", 
               "onclick": "OpenDoc()"},
            {
               "value": "Close",
               "onclick": "CloseDoc()"}]}}}

GNU style (not available for now)

'gnu'

{
   "menu": 
      {
         "id": "file",
         "value": "File",
         "popup": 
            {
               "menuitem": 
                  [
                     {
                        "value": "New", 
                        "onclick": "CreateNewDoc()"
                     },
                     {
                        "value": "Open", 
                        "onclick": "OpenDoc()"
                     },
                     {
                        "value": "Close",
                        "onclick": "CloseDoc()"
                     }
                  ]
           }
     }
}