\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{Emre Coltu (emrecoltu)} \pdfinfo{ /Title (javascript-object-notation-json.pdf) /Creator (Cheatography) /Author (Emre Coltu (emrecoltu)) /Subject (JavaScript Object Notation (json) Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{FA6900} \definecolor{LightBackground}{HTML}{FEF5EF} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{JavaScript Object Notation (json) Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{Emre Coltu (emrecoltu)} via \textcolor{DarkBackground}{\uline{cheatography.com/121590/cs/22330/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}Emre Coltu (emrecoltu) \\ \uline{cheatography.com/emrecoltu} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Not Yet Published.\\ Updated 6th April, 2020.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{2} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{\{\{fa-info\}\}General Information}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{• Data is in {\bf{key/value}} pairs} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{• Data groups by {\bf{colon}} "{\bf{:}}" and separates by {\bf{comma}} "{\bf{,}}"} \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{• Objects are surrounded with {\bf{curly braces}} "{\bf{\{}}" and "{\bf{\}}}"} \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{• Each {\bf{key}} in objects should be {\bf{unique}}} \tn % Row Count 6 (+ 1) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{• Arrays are surrounded with {\bf{square brackets}} "{\bf{{[}}}" and "{\bf{{]}}}"} \tn % Row Count 8 (+ 2) % Row 5 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{• Light, human-readable {\bf{data-interchange}} format} \tn % Row Count 10 (+ 2) % Row 6 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{• Can be used with {\bf{modern}} programming languages} \tn % Row Count 12 (+ 2) % Row 7 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{• Language {\bf{independent}}} \tn % Row Count 13 (+ 1) % Row 8 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{• The trailing commas and leading zeros are {\bf{prohibited}}} \tn % Row Count 15 (+ 2) % Row 9 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{• Numbers can't have {\bf{octal}} or {\bf{hexadecimal}} format} \tn % Row Count 17 (+ 2) % Row 10 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{• {\bf{Easy}} to use and doesn't use full markup like XML} \tn % Row Count 19 (+ 2) % Row 11 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{• Popular due to it's {\bf{asynchronous}} speed} \tn % Row Count 20 (+ 1) % Row 12 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{• Extension for Json files is {\emph{"{\bf{.json}}"}}} \tn % Row Count 21 (+ 1) % Row 13 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{• Mime type for Json texts is {\emph{"{\bf{application/json}}"}}} \tn % Row Count 23 (+ 2) % Row 14 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{• Official media type for Json is {\emph{"{\bf{application/json}}"}}} \tn % Row Count 25 (+ 2) % Row 15 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{• Json internet media type is {\emph{"{\bf{application/json}}"}}} \tn % Row Count 27 (+ 2) % Row 16 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{• The uniform type identifier for Json is {\emph{"{\bf{public.json}}"}}} \tn % Row Count 29 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{1.596 cm} x{1.824 cm} x{4.18 cm} } \SetRowColor{DarkBackground} \mymulticolumn{3}{x{8.4cm}}{\bf\textcolor{white}{\{\{fa-sitemap\}\} Data Types}} \tn % Row 0 \SetRowColor{LightBackground} \{\{ac\}\}{\bf{Json}} & \{\{ac\}\}{\bf{Python}} & \{\{ac\}\}{\bf{Possible Values}} \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} \{\{ac\}\}boolean & \{\{ac\}\}bool & \{\{ac\}\}true {\bf{|}} false \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} \{\{ac\}\}number & \{\{ac\}\}float & \{\{ac\}\}123 {\bf{|}} 123.456 {\bf{|}} 1234e-3 \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} \{\{ac\}\}string & \{\{ac\}\}str & \{\{ac\}\}"abcdef" {\bf{|}} "" \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} \{\{ac\}\}array & \{\{ac\}\}list & \{\{ac\}\}{[}"a", "b", "c", "d"{]} \tn % Row Count 10 (+ 2) % Row 5 \SetRowColor{white} \{\{ac\}\}object & \{\{ac\}\}dict & \{\{ac\}\}\{"id": 7\} \tn % Row Count 12 (+ 2) % Row 6 \SetRowColor{LightBackground} \{\{ac\}\}null & \{\{ac\}\}None & \{\{ac\}\}null \tn % Row Count 14 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}---} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{4.72 cm} x{3.28 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{\{\{fa-bolt\}\} Escape Sequences}} \tn % Row 0 \SetRowColor{LightBackground} \{\{ac\}\}{\bf{Name}} & \{\{ac\}\}{\bf{Sequence}} \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} \{\{ac\}\}Double Quote & \{\{ac\}\}\textbackslash{}" \tn % Row Count 3 (+ 1) % Row 2 \SetRowColor{LightBackground} \{\{ac\}\}Backslash & \{\{ac\}\}\textbackslash{}\textbackslash{} \tn % Row Count 4 (+ 1) % Row 3 \SetRowColor{white} \{\{ac\}\}Slash & \{\{ac\}\}\textbackslash{}/ \tn % Row Count 5 (+ 1) % Row 4 \SetRowColor{LightBackground} \{\{ac\}\}Backspace (BS) & \{\{ac\}\}\textbackslash{}b \tn % Row Count 6 (+ 1) % Row 5 \SetRowColor{white} \{\{ac\}\}Form Feed (FF) & \{\{ac\}\}\textbackslash{}f \tn % Row Count 7 (+ 1) % Row 6 \SetRowColor{LightBackground} \{\{ac\}\}Horizontal Tab (HT) & \{\{ac\}\}\textbackslash{}t \tn % Row Count 9 (+ 2) % Row 7 \SetRowColor{white} \{\{ac\}\}Newline (NL) & \{\{ac\}\}\textbackslash{}n \tn % Row Count 10 (+ 1) % Row 8 \SetRowColor{LightBackground} \{\{ac\}\}Carriage Return (CR) & \{\{ac\}\}\textbackslash{}r \tn % Row Count 12 (+ 2) % Row 9 \SetRowColor{white} \{\{ac\}\}Hexadecimal & \{\{ac\}\}\textbackslash{}uXXXX \tn % Row Count 13 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{\{\{fa-cubes\}\} Arrays}} \tn % Row 0 \SetRowColor{LightBackground} {\bf{Syntax}} & \{\{ac\}\}{\bf{Description}} \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} arr = {[}{]} & \{\{ac\}\}Empty Array \tn % Row Count 3 (+ 1) % Row 2 \SetRowColor{LightBackground} arr = {[}"James"{]} & \{\{ac\}\}Single Element Array \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} `arr = {[}\{\{nl\}\}~~~~"James", \{\{nl\}\}~~~~"Bond", \{\{nl\}\}~~~~42, \{\{nl\}\}~~~~"M", \{\{nl\}\}~~~~\{"Germany": "Berlin"\}, \{\{nl\}\}~~~~true\{\{nl\}\}{]}` & \{\{ac\}\}Multi Element Array\{\{nl\}\}Firstname\{\{nl\}\}Lastname\{\{nl\}\}Age\{\{nl\}\}Sex\{\{nl\}\}Location\{\{nl\}\}Available \tn % Row Count 18 (+ 13) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{\{\{fa-book\}\} Objects}} \tn % Row 0 \SetRowColor{LightBackground} {\bf{Syntax}} & \{\{ac\}\}{\bf{Description}} \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} obj = \{\} & \{\{ac\}\}Empty Object \tn % Row Count 3 (+ 1) % Row 2 \SetRowColor{LightBackground} obj = \{"key": value\} & \{\{ac\}\}Single Element Object \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} `obj = \{\{\{nl\}\}~~~~"Firstname": "Jane", \{\{nl\}\}~~~~"Lastname": "Doe", \{\{nl\}\}~~~~"Age": 39, \{\{nl\}\}~~~~"Sex": "F", \{\{nl\}\}~~~~"Location": \{"DE": "Berlin"\}, \{\{nl\}\}~~~~"Availability": false\{\{nl\}\}\}` & \{\{ac\}\}Multi Element Object\{\{nl\}\}Firstname\{\{nl\}\}Lastname\{\{nl\}\}Age\{\{nl\}\}Sex\{\{nl\}\}Location\{\{nl\}\}Availability \tn % Row Count 21 (+ 16) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{\{\{fa-align-right\}\} Nested Object and Arrays}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{`nested = \{\{\{nl\}\}~~~~"indexes": \{\{\{nl\}\}~~~~~~~~"Firstname": 0, \{\{nl\}\}~~~~~~~~"Lastname": 1, \{\{nl\}\}~~~~~~~~"Age": 2, \{\{nl\}\}~~~~~~~~"Sex": 3, \{\{nl\}\}~~~~~~~~"Country": 4, \{\{nl\}\}~~~~~~~~"Available": 5\{\{nl\}\}~~~~\}, \{\{nl\}\}~~~~"user": {[}\{\{nl\}\}~~~~~~~~"James", \{\{nl\}\}~~~~~~~~"Bond", \{\{nl\}\}~~~~~~~~42, \{\{nl\}\}~~~~~~~~"M", \{\{nl\}\}~~~~~~~~\{"Germany": "Berlin"\}, \{\{nl\}\}~~~~~~~~true\{\{nl\}\}~~~~{]}\{\{nl\}\}\}`} \tn % Row Count 19 (+ 19) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Nested Objects and Arrays}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{nested = \{} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{~~~~"defaults": \{} \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{~~~~~~~~"First": 0,} \tn % Row Count 4 (+ 2) % Row 3 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{~~~~~~~~"Last": 1,} \tn % Row Count 6 (+ 2) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{~~~~~~~~"Age": 2,} \tn % Row Count 8 (+ 2) % Row 5 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{~~~~~~~~"Sex": 3,} \tn % Row Count 10 (+ 2) % Row 6 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{~~~~~~~~"Country": 4,} \tn % Row Count 12 (+ 2) % Row 7 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{~~~~~~~~"Available": 5} \tn % Row Count 14 (+ 2) % Row 8 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{~~~~\},} \tn % Row Count 15 (+ 1) % Row 9 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{~~~~"husband": {[}} \tn % Row Count 16 (+ 1) % Row 10 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{~~~~~~~~"James",} \tn % Row Count 18 (+ 2) % Row 11 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{~~~~~~~~"Bond",} \tn % Row Count 20 (+ 2) % Row 12 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{~~~~~~~~"42",} \tn % Row Count 22 (+ 2) % Row 13 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{~~~~~~~~"T",} \tn % Row Count 24 (+ 2) % Row 14 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{~~~~~~~~"Germany",} \tn % Row Count 26 (+ 2) % Row 15 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{~~~~~~~~true} \tn % Row Count 28 (+ 2) % Row 16 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{~~~~{]},} \tn % Row Count 29 (+ 1) % Row 17 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{~~~~"wife": {[}} \tn % Row Count 30 (+ 1) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Nested Objects and Arrays (cont)}} \tn % Row 18 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{~~~~~~~~"Jane",} \tn % Row Count 2 (+ 2) % Row 19 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{~~~~~~~~"Honda",} \tn % Row Count 4 (+ 2) % Row 20 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{~~~~~~~~"42",} \tn % Row Count 6 (+ 2) % Row 21 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{~~~~~~~~"T",} \tn % Row Count 8 (+ 2) % Row 22 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{~~~~~~~~"Germany",} \tn % Row Count 10 (+ 2) % Row 23 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{~~~~~~~~false} \tn % Row Count 12 (+ 2) % Row 24 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{~~~~{]}} \tn % Row Count 13 (+ 1) % Row 25 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{\}} \tn % Row Count 14 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{3.68 cm} x{4.32 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Arrays}} \tn % Row 0 \SetRowColor{LightBackground} array = {[}{]} & Empty Array \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} array = {[}"James"{]} & Single Element Array \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} array = {[} & Multi Element Array \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{~~~~"James",} \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{~~~~"Bond",} \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{~~~~"42",} \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{~~~~"T",} \tn % Row Count 7 (+ 1) % Row 7 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{~~~~"Germany",} \tn % Row Count 8 (+ 1) % Row 8 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{~~~~true} \tn % Row Count 9 (+ 1) % Row 9 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{]}} \tn % Row Count 10 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{4.32 cm} x{3.68 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Objects}} \tn % Row 0 \SetRowColor{LightBackground} myobject = \{\} & Empty Object \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} myobject = \{"key": value\} & Single Element Object \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} myobject = \{ & Multi Element Object \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{~~~~"First": "James",} \tn % Row Count 6 (+ 1) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{~~~~"Last": "Bond",} \tn % Row Count 7 (+ 1) % Row 5 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{~~~~"Age": "42",} \tn % Row Count 8 (+ 1) % Row 6 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{~~~~"Sex": "T",} \tn % Row Count 9 (+ 1) % Row 7 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{~~~~"Country": "Germany",} \tn % Row Count 10 (+ 1) % Row 8 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{~~~~"Available": true} \tn % Row Count 11 (+ 1) % Row 9 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\}} \tn % Row Count 12 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{4.88 cm} x{3.12 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{\{\{fa-cubes\}\}}} \tn % Row 0 \SetRowColor{LightBackground} {\bf{Syntax}} & \{\{ac\}\}{\bf{Description}} \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} arr = {[}{]} & \{\{ac\}\}Empty Array \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} arr = {[}"Username"{]} & \{\{ac\}\}Single Element Array \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} `arr = {[}\{\{nl\}\}~~~~"James", \{\{nl\}\}~~~~"Bond", \{\{nl\}\}~~~~42, \{\{nl\}\}~~~~"M", \{\{nl\}\}~~~~\{"Germany": "Berlin"\}, \{\{nl\}\}~~~~true\{\{nl\}\}{]}` & \{\{ac\}\}Multi Elements Array \tn % Row Count 17 (+ 11) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Literals}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{null} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{true} \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{false} \tn % Row Count 3 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{1.92 cm} x{6.08 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Data Types}} \tn % Row 0 \SetRowColor{LightBackground} boolean & true, false \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} number & 123, 123.456, 1.234e-3 \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} string & "abcdef", "" \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} array & {[}"a", "b", "c", "d"{]} \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} object & \{"id": 7\} \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} null & null \tn % Row Count 6 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{General Information}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{• Doesn't have comments. Everything in it is considered data} \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{• Data is in name/value pairs. Grouped by a colon ":" and separated by comma ","} \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{• Objects are surrounded with curly braces. Each key within should be unique and enclosed within the double quotes. An object begins with a left brace "\{" and ends with a right brace "\}"} \tn % Row Count 8 (+ 4) % Row 3 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{• Arrays are surrounded with square brackets. An array begins with a left bracket "{[}" and ends with a right bracket "{]}"} \tn % Row Count 11 (+ 3) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{• The trailing commas and leading zeros are prohibited} \tn % Row Count 13 (+ 2) % Row 5 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{• Numbers can't have octal or hexadecimal format} \tn % Row Count 14 (+ 1) % Row 6 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{• Lightweight and human-readable data-interchange format} \tn % Row Count 16 (+ 2) % Row 7 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{• Can be used with modern programming languages} \tn % Row Count 17 (+ 1) % Row 8 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{• Language independent} \tn % Row Count 18 (+ 1) % Row 9 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{• Very easy to parse and generate and doesn't use a full markup structure like a XML} \tn % Row Count 20 (+ 2) % Row 10 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{• Popular alternative to XML format for its fast asynchronous client–server communication} \tn % Row Count 22 (+ 2) % Row 11 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{• Extension for json files is ".json"} \tn % Row Count 23 (+ 1) % Row 12 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{• Mime type for json texts is "application/json"} \tn % Row Count 24 (+ 1) % Row 13 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{• The official media type for json is "application/json".} \tn % Row Count 26 (+ 2) % Row 14 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{• json internet media type is "application/json".} \tn % Row Count 28 (+ 2) % Row 15 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{• The uniform type identifier is "public.json"} \tn % Row Count 29 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{6.08 cm} p{1.92 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Escape Sequences}} \tn % Row 0 \SetRowColor{LightBackground} Double Quote & \textbackslash{}" \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} Backslash & \textbackslash{}\textbackslash{} \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} Slash & \textbackslash{}/ \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} Backspace (BS) & \textbackslash{}b \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} Form Feed (FF) & \textbackslash{}f \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} Horizontal Tab (HT) & \textbackslash{}t \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} Newline () & \textbackslash{}n \tn % Row Count 7 (+ 1) % Row 7 \SetRowColor{white} Carriage Return & \textbackslash{}r \tn % Row Count 8 (+ 1) % Row 8 \SetRowColor{LightBackground} Hexadecimal & \textbackslash{}uXXXX \tn % Row Count 9 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}