github.com/x04/go/src@v0.0.0-20200202162449-3d481ceb3525/encoding/json/tables.go (about)

     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 "github.com/x04/go/src/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  }