...

Source file src/pkg/encoding/json/tables.go

     1	// Copyright 2016 The Go Authors. All rights reserved.
     2	// Use of this source code is governed by a BSD-style
     3	// license that can be found in the LICENSE file.
     4	
     5	package json
     6	
     7	import "unicode/utf8"
     8	
     9	// safeSet holds the value true if the ASCII character with the given array
    10	// position can be represented inside a JSON string without any further
    11	// escaping.
    12	//
    13	// All values are true except for the ASCII control characters (0-31), the
    14	// double quote ("), and the backslash character ("\").
    15	var safeSet = [utf8.RuneSelf]bool{
    16		' ':      true,
    17		'!':      true,
    18		'"':      false,
    19		'#':      true,
    20		'$':      true,
    21		'%':      true,
    22		'&':      true,
    23		'\'':     true,
    24		'(':      true,
    25		')':      true,
    26		'*':      true,
    27		'+':      true,
    28		',':      true,
    29		'-':      true,
    30		'.':      true,
    31		'/':      true,
    32		'0':      true,
    33		'1':      true,
    34		'2':      true,
    35		'3':      true,
    36		'4':      true,
    37		'5':      true,
    38		'6':      true,
    39		'7':      true,
    40		'8':      true,
    41		'9':      true,
    42		':':      true,
    43		';':      true,
    44		'<':      true,
    45		'=':      true,
    46		'>':      true,
    47		'?':      true,
    48		'@':      true,
    49		'A':      true,
    50		'B':      true,
    51		'C':      true,
    52		'D':      true,
    53		'E':      true,
    54		'F':      true,
    55		'G':      true,
    56		'H':      true,
    57		'I':      true,
    58		'J':      true,
    59		'K':      true,
    60		'L':      true,
    61		'M':      true,
    62		'N':      true,
    63		'O':      true,
    64		'P':      true,
    65		'Q':      true,
    66		'R':      true,
    67		'S':      true,
    68		'T':      true,
    69		'U':      true,
    70		'V':      true,
    71		'W':      true,
    72		'X':      true,
    73		'Y':      true,
    74		'Z':      true,
    75		'[':      true,
    76		'\\':     false,
    77		']':      true,
    78		'^':      true,
    79		'_':      true,
    80		'`':      true,
    81		'a':      true,
    82		'b':      true,
    83		'c':      true,
    84		'd':      true,
    85		'e':      true,
    86		'f':      true,
    87		'g':      true,
    88		'h':      true,
    89		'i':      true,
    90		'j':      true,
    91		'k':      true,
    92		'l':      true,
    93		'm':      true,
    94		'n':      true,
    95		'o':      true,
    96		'p':      true,
    97		'q':      true,
    98		'r':      true,
    99		's':      true,
   100		't':      true,
   101		'u':      true,
   102		'v':      true,
   103		'w':      true,
   104		'x':      true,
   105		'y':      true,
   106		'z':      true,
   107		'{':      true,
   108		'|':      true,
   109		'}':      true,
   110		'~':      true,
   111		'\u007f': true,
   112	}
   113	
   114	// htmlSafeSet holds the value true if the ASCII character with the given
   115	// array position can be safely represented inside a JSON string, embedded
   116	// inside of HTML <script> tags, without any additional escaping.
   117	//
   118	// All values are true except for the ASCII control characters (0-31), the
   119	// double quote ("), the backslash character ("\"), HTML opening and closing
   120	// tags ("<" and ">"), and the ampersand ("&").
   121	var htmlSafeSet = [utf8.RuneSelf]bool{
   122		' ':      true,
   123		'!':      true,
   124		'"':      false,
   125		'#':      true,
   126		'$':      true,
   127		'%':      true,
   128		'&':      false,
   129		'\'':     true,
   130		'(':      true,
   131		')':      true,
   132		'*':      true,
   133		'+':      true,
   134		',':      true,
   135		'-':      true,
   136		'.':      true,
   137		'/':      true,
   138		'0':      true,
   139		'1':      true,
   140		'2':      true,
   141		'3':      true,
   142		'4':      true,
   143		'5':      true,
   144		'6':      true,
   145		'7':      true,
   146		'8':      true,
   147		'9':      true,
   148		':':      true,
   149		';':      true,
   150		'<':      false,
   151		'=':      true,
   152		'>':      false,
   153		'?':      true,
   154		'@':      true,
   155		'A':      true,
   156		'B':      true,
   157		'C':      true,
   158		'D':      true,
   159		'E':      true,
   160		'F':      true,
   161		'G':      true,
   162		'H':      true,
   163		'I':      true,
   164		'J':      true,
   165		'K':      true,
   166		'L':      true,
   167		'M':      true,
   168		'N':      true,
   169		'O':      true,
   170		'P':      true,
   171		'Q':      true,
   172		'R':      true,
   173		'S':      true,
   174		'T':      true,
   175		'U':      true,
   176		'V':      true,
   177		'W':      true,
   178		'X':      true,
   179		'Y':      true,
   180		'Z':      true,
   181		'[':      true,
   182		'\\':     false,
   183		']':      true,
   184		'^':      true,
   185		'_':      true,
   186		'`':      true,
   187		'a':      true,
   188		'b':      true,
   189		'c':      true,
   190		'd':      true,
   191		'e':      true,
   192		'f':      true,
   193		'g':      true,
   194		'h':      true,
   195		'i':      true,
   196		'j':      true,
   197		'k':      true,
   198		'l':      true,
   199		'm':      true,
   200		'n':      true,
   201		'o':      true,
   202		'p':      true,
   203		'q':      true,
   204		'r':      true,
   205		's':      true,
   206		't':      true,
   207		'u':      true,
   208		'v':      true,
   209		'w':      true,
   210		'x':      true,
   211		'y':      true,
   212		'z':      true,
   213		'{':      true,
   214		'|':      true,
   215		'}':      true,
   216		'~':      true,
   217		'\u007f': true,
   218	}
   219	

View as plain text