Annotation of embedaddon/php/ext/json/tests/pass001.1_64bit.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: JSON (http://www.crockford.com/JSON/JSON_checker/test/pass1.json)
                      3: --INI--
                      4: precision=14
                      5: --SKIPIF--
                      6: <?php
                      7:   if (!extension_loaded('json')) die('skip: json extension not available');
                      8:   if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only");
                      9: ?>
                     10: --FILE--
                     11: <?php
                     12: /* Modified to test unescaped UNICODE as keys and values.
                     13:  * Modified to test numbers with exponents without a decimal point.
                     14:  * Modified to test empty string values.
                     15:  * Modified to test a mix of integers and strings as keys.
                     16:  */
                     17: // Expect warnings about INF.
                     18: ini_set("error_reporting", E_ALL & ~E_WARNING);
                     19: 
                     20: $test = "
                     21: [
                     22:     \"JSON Test Pattern pass1\",
                     23:     {\"object with 1 member\":[\"array with 1 element\"]},
                     24:     {},
                     25:     [],
                     26:     -42,
                     27:     true,
                     28:     false,
                     29:     null,
                     30:     {
                     31:         \"integer\": 1234567890,
                     32:         \"real\": -9876.543210,
                     33:         \"e\": 0.123456789e-12,
                     34:         \"E\": 1.234567890E+34,
                     35:         \"\":  23456789012E666,
                     36:         \"E no .\":  4E12,
                     37:         \"zero\": 0,
                     38:         \"one\": 1,
                     39:         \"space\": \" \",
                     40:         \"quote\": \"\\\"\",
                     41:         \"backslash\": \"\\\\\",
                     42:         \"controls\": \"\\b\\f\\n\\r\\t\",
                     43:         \"slash\": \"/ & \\/\",
                     44:         \"alpha\": \"abcdefghijklmnopqrstuvwyz\",
                     45:         \"ALPHA\": \"ABCDEFGHIJKLMNOPQRSTUVWYZ\",
                     46:         \"digit\": \"0123456789\",
                     47:         \"special\": \"`1~!@#$%^&*()_+-={':[,]}|;.</>?\",
                     48:         \"hex\": \"\\u0123\\u4567\\u89AB\\uCDEF\\uabcd\\uef4A\",
                     49:         \"unicode\": \"\\u30d7\\u30ec\\u30b9\\u30ad\\u30c3\\u30c8\",
                     50:         \"プレスキット\": \"プレスキット\",
                     51:         \"empty_string\": \"\",
                     52:         \"true\": true,
                     53:         \"false\": false,
                     54:         \"null\": null,
                     55:         \"array\":[  ],
                     56:         \"object\":{  },
                     57:         \"123\":{\"456\":{\"abc\":{\"789\":\"def\",\"012\":[1,2,\"5\",500],\"ghi\":[1,2,\"five\",50,\"sixty\"]}}},
                     58:         \"address\": \"50 St. James Street\",
                     59:         \"url\": \"http://www.JSON.org/\",
                     60:         \"comment\": \"// /* <!-- --\",
                     61:         \"# -- --> */\": \" \",
                     62:         \" s p a c e d \" :[1,2 , 3
                     63: 
                     64: ,
                     65: 
                     66: 4 , 5        ,          6           ,7        ],
                     67:         \"compact\": [1,2,3,4,5,6,7],
                     68:         \"jsontext\": \"{\\\"object with 1 member\\\":[\\\"array with 1 element\\\"]}\",
                     69:         \"quotes\": \"&#34; \\u0022 %22 0x22 034 &#x22;\",
                     70:         \"\\/\\\\\\\"\\uCAFE\\uBABE\\uAB98\\uFCDE\\ubcda\\uef4A\\b\\f\\n\\r\\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?\"
                     71: : \"A key can be any string\"
                     72:     },
                     73:     0.5 ,98.6
                     74: ,
                     75: 99.44
                     76: ,
                     77: 
                     78: 1066
                     79: 
                     80: 
                     81: ,\"rosebud\"]
                     82: ";
                     83: 
                     84: echo 'Testing: ' . $test . "\n";
                     85: echo "DECODE: AS OBJECT\n";
                     86: $obj = json_decode($test);
                     87: var_dump($obj);
                     88: echo "DECODE: AS ARRAY\n";
                     89: $arr = json_decode($test, true);
                     90: var_dump($arr);
                     91: 
                     92: echo "ENCODE: FROM OBJECT\n";
                     93: $obj_enc = json_encode($obj);
                     94: echo $obj_enc . "\n";
                     95: echo "ENCODE: FROM ARRAY\n";
                     96: $arr_enc = json_encode($arr);
                     97: echo $arr_enc . "\n";
                     98: 
                     99: echo "DECODE AGAIN: AS OBJECT\n";
                    100: $obj = json_decode($obj_enc);
                    101: var_dump($obj);
                    102: echo "DECODE AGAIN: AS ARRAY\n";
                    103: $arr = json_decode($arr_enc, true);
                    104: var_dump($arr);
                    105: 
                    106: ?>
                    107: --EXPECTF--
                    108: Testing: 
                    109: [
                    110:     "JSON Test Pattern pass1",
                    111:     {"object with 1 member":["array with 1 element"]},
                    112:     {},
                    113:     [],
                    114:     -42,
                    115:     true,
                    116:     false,
                    117:     null,
                    118:     {
                    119:         "integer": 1234567890,
                    120:         "real": -9876.543210,
                    121:         "e": 0.123456789e-12,
                    122:         "E": 1.234567890E+34,
                    123:         "":  23456789012E666,
                    124:         "E no .":  4E12,
                    125:         "zero": 0,
                    126:         "one": 1,
                    127:         "space": " ",
                    128:         "quote": "\"",
                    129:         "backslash": "\\",
                    130:         "controls": "\b\f\n\r\t",
                    131:         "slash": "/ & \/",
                    132:         "alpha": "abcdefghijklmnopqrstuvwyz",
                    133:         "ALPHA": "ABCDEFGHIJKLMNOPQRSTUVWYZ",
                    134:         "digit": "0123456789",
                    135:         "special": "`1~!@#$%^&*()_+-={':[,]}|;.</>?",
                    136:         "hex": "\u0123\u4567\u89AB\uCDEF\uabcd\uef4A",
                    137:         "unicode": "\u30d7\u30ec\u30b9\u30ad\u30c3\u30c8",
                    138:         "プレスキット": "プレスキット",
                    139:         "empty_string": "",
                    140:         "true": true,
                    141:         "false": false,
                    142:         "null": null,
                    143:         "array":[  ],
                    144:         "object":{  },
                    145:         "123":{"456":{"abc":{"789":"def","012":[1,2,"5",500],"ghi":[1,2,"five",50,"sixty"]}}},
                    146:         "address": "50 St. James Street",
                    147:         "url": "http://www.JSON.org/",
                    148:         "comment": "// /* <!-- --",
                    149:         "# -- --> */": " ",
                    150:         " s p a c e d " :[1,2 , 3
                    151: 
                    152: ,
                    153: 
                    154: 4 , 5        ,          6           ,7        ],
                    155:         "compact": [1,2,3,4,5,6,7],
                    156:         "jsontext": "{\"object with 1 member\":[\"array with 1 element\"]}",
                    157:         "quotes": "&#34; \u0022 %22 0x22 034 &#x22;",
                    158:         "\/\\\"\uCAFE\uBABE\uAB98\uFCDE\ubcda\uef4A\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?"
                    159: : "A key can be any string"
                    160:     },
                    161:     0.5 ,98.6
                    162: ,
                    163: 99.44
                    164: ,
                    165: 
                    166: 1066
                    167: 
                    168: 
                    169: ,"rosebud"]
                    170: 
                    171: DECODE: AS OBJECT
                    172: array(14) {
                    173:   [0]=>
                    174:   string(23) "JSON Test Pattern pass1"
                    175:   [1]=>
                    176:   object(stdClass)#%d (1) {
                    177:     ["object with 1 member"]=>
                    178:     array(1) {
                    179:       [0]=>
                    180:       string(20) "array with 1 element"
                    181:     }
                    182:   }
                    183:   [2]=>
                    184:   object(stdClass)#%d (0) {
                    185:   }
                    186:   [3]=>
                    187:   array(0) {
                    188:   }
                    189:   [4]=>
                    190:   int(-42)
                    191:   [5]=>
                    192:   bool(true)
                    193:   [6]=>
                    194:   bool(false)
                    195:   [7]=>
                    196:   NULL
                    197:   [8]=>
                    198:   object(stdClass)#%d (36) {
                    199:     ["integer"]=>
                    200:     int(1234567890)
                    201:     ["real"]=>
                    202:     float(-9876.54321)
                    203:     ["e"]=>
                    204:     float(1.23456789E-13)
                    205:     ["E"]=>
                    206:     float(1.23456789E+34)
                    207:     ["_empty_"]=>
                    208:     float(INF)
                    209:     ["E no ."]=>
                    210:     float(4000000000000)
                    211:     ["zero"]=>
                    212:     int(0)
                    213:     ["one"]=>
                    214:     int(1)
                    215:     ["space"]=>
                    216:     string(1) " "
                    217:     ["quote"]=>
                    218:     string(1) """
                    219:     ["backslash"]=>
                    220:     string(1) "\"
                    221:     ["controls"]=>
                    222:     string(5) "
                    223: 
      "
                    224:     ["slash"]=>
                    225:     string(5) "/ & /"
                    226:     ["alpha"]=>
                    227:     string(25) "abcdefghijklmnopqrstuvwyz"
                    228:     ["ALPHA"]=>
                    229:     string(25) "ABCDEFGHIJKLMNOPQRSTUVWYZ"
                    230:     ["digit"]=>
                    231:     string(10) "0123456789"
                    232:     ["special"]=>
                    233:     string(31) "`1~!@#$%^&*()_+-={':[,]}|;.</>?"
                    234:     ["hex"]=>
                    235:     string(17) "ģ䕧覫췯ꯍ"
                    236:     ["unicode"]=>
                    237:     string(18) "プレスキット"
                    238:     ["プレスキット"]=>
                    239:     string(18) "プレスキット"
                    240:     ["empty_string"]=>
                    241:     string(0) ""
                    242:     ["true"]=>
                    243:     bool(true)
                    244:     ["false"]=>
                    245:     bool(false)
                    246:     ["null"]=>
                    247:     NULL
                    248:     ["array"]=>
                    249:     array(0) {
                    250:     }
                    251:     ["object"]=>
                    252:     object(stdClass)#%d (0) {
                    253:     }
                    254:     ["123"]=>
                    255:     object(stdClass)#%d (1) {
                    256:       ["456"]=>
                    257:       object(stdClass)#%d (1) {
                    258:         ["abc"]=>
                    259:         object(stdClass)#%d (3) {
                    260:           ["789"]=>
                    261:           string(3) "def"
                    262:           ["012"]=>
                    263:           array(4) {
                    264:             [0]=>
                    265:             int(1)
                    266:             [1]=>
                    267:             int(2)
                    268:             [2]=>
                    269:             string(1) "5"
                    270:             [3]=>
                    271:             int(500)
                    272:           }
                    273:           ["ghi"]=>
                    274:           array(5) {
                    275:             [0]=>
                    276:             int(1)
                    277:             [1]=>
                    278:             int(2)
                    279:             [2]=>
                    280:             string(4) "five"
                    281:             [3]=>
                    282:             int(50)
                    283:             [4]=>
                    284:             string(5) "sixty"
                    285:           }
                    286:         }
                    287:       }
                    288:     }
                    289:     ["address"]=>
                    290:     string(19) "50 St. James Street"
                    291:     ["url"]=>
                    292:     string(20) "http://www.JSON.org/"
                    293:     ["comment"]=>
                    294:     string(13) "// /* <!-- --"
                    295:     ["# -- --> */"]=>
                    296:     string(1) " "
                    297:     [" s p a c e d "]=>
                    298:     array(7) {
                    299:       [0]=>
                    300:       int(1)
                    301:       [1]=>
                    302:       int(2)
                    303:       [2]=>
                    304:       int(3)
                    305:       [3]=>
                    306:       int(4)
                    307:       [4]=>
                    308:       int(5)
                    309:       [5]=>
                    310:       int(6)
                    311:       [6]=>
                    312:       int(7)
                    313:     }
                    314:     ["compact"]=>
                    315:     array(7) {
                    316:       [0]=>
                    317:       int(1)
                    318:       [1]=>
                    319:       int(2)
                    320:       [2]=>
                    321:       int(3)
                    322:       [3]=>
                    323:       int(4)
                    324:       [4]=>
                    325:       int(5)
                    326:       [5]=>
                    327:       int(6)
                    328:       [6]=>
                    329:       int(7)
                    330:     }
                    331:     ["jsontext"]=>
                    332:     string(49) "{"object with 1 member":["array with 1 element"]}"
                    333:     ["quotes"]=>
                    334:     string(27) "&#34; " %22 0x22 034 &#x22;"
                    335:     ["/\"쫾몾ꮘﳞ볚
                    336: 
      `1~!@#$%^&*()_+-=[]{}|;:',./<>?"]=>
                    337:     string(23) "A key can be any string"
                    338:   }
                    339:   [9]=>
                    340:   float(0.5)
                    341:   [10]=>
                    342:   float(98.6)
                    343:   [11]=>
                    344:   float(99.44)
                    345:   [12]=>
                    346:   int(1066)
                    347:   [13]=>
                    348:   string(7) "rosebud"
                    349: }
                    350: DECODE: AS ARRAY
                    351: array(14) {
                    352:   [0]=>
                    353:   string(23) "JSON Test Pattern pass1"
                    354:   [1]=>
                    355:   array(1) {
                    356:     ["object with 1 member"]=>
                    357:     array(1) {
                    358:       [0]=>
                    359:       string(20) "array with 1 element"
                    360:     }
                    361:   }
                    362:   [2]=>
                    363:   array(0) {
                    364:   }
                    365:   [3]=>
                    366:   array(0) {
                    367:   }
                    368:   [4]=>
                    369:   int(-42)
                    370:   [5]=>
                    371:   bool(true)
                    372:   [6]=>
                    373:   bool(false)
                    374:   [7]=>
                    375:   NULL
                    376:   [8]=>
                    377:   array(36) {
                    378:     ["integer"]=>
                    379:     int(1234567890)
                    380:     ["real"]=>
                    381:     float(-9876.54321)
                    382:     ["e"]=>
                    383:     float(1.23456789E-13)
                    384:     ["E"]=>
                    385:     float(1.23456789E+34)
                    386:     [""]=>
                    387:     float(INF)
                    388:     ["E no ."]=>
                    389:     float(4000000000000)
                    390:     ["zero"]=>
                    391:     int(0)
                    392:     ["one"]=>
                    393:     int(1)
                    394:     ["space"]=>
                    395:     string(1) " "
                    396:     ["quote"]=>
                    397:     string(1) """
                    398:     ["backslash"]=>
                    399:     string(1) "\"
                    400:     ["controls"]=>
                    401:     string(5) "
                    402: 
      "
                    403:     ["slash"]=>
                    404:     string(5) "/ & /"
                    405:     ["alpha"]=>
                    406:     string(25) "abcdefghijklmnopqrstuvwyz"
                    407:     ["ALPHA"]=>
                    408:     string(25) "ABCDEFGHIJKLMNOPQRSTUVWYZ"
                    409:     ["digit"]=>
                    410:     string(10) "0123456789"
                    411:     ["special"]=>
                    412:     string(31) "`1~!@#$%^&*()_+-={':[,]}|;.</>?"
                    413:     ["hex"]=>
                    414:     string(17) "ģ䕧覫췯ꯍ"
                    415:     ["unicode"]=>
                    416:     string(18) "プレスキット"
                    417:     ["プレスキット"]=>
                    418:     string(18) "プレスキット"
                    419:     ["empty_string"]=>
                    420:     string(0) ""
                    421:     ["true"]=>
                    422:     bool(true)
                    423:     ["false"]=>
                    424:     bool(false)
                    425:     ["null"]=>
                    426:     NULL
                    427:     ["array"]=>
                    428:     array(0) {
                    429:     }
                    430:     ["object"]=>
                    431:     array(0) {
                    432:     }
                    433:     [123]=>
                    434:     array(1) {
                    435:       [456]=>
                    436:       array(1) {
                    437:         ["abc"]=>
                    438:         array(3) {
                    439:           [789]=>
                    440:           string(3) "def"
                    441:           ["012"]=>
                    442:           array(4) {
                    443:             [0]=>
                    444:             int(1)
                    445:             [1]=>
                    446:             int(2)
                    447:             [2]=>
                    448:             string(1) "5"
                    449:             [3]=>
                    450:             int(500)
                    451:           }
                    452:           ["ghi"]=>
                    453:           array(5) {
                    454:             [0]=>
                    455:             int(1)
                    456:             [1]=>
                    457:             int(2)
                    458:             [2]=>
                    459:             string(4) "five"
                    460:             [3]=>
                    461:             int(50)
                    462:             [4]=>
                    463:             string(5) "sixty"
                    464:           }
                    465:         }
                    466:       }
                    467:     }
                    468:     ["address"]=>
                    469:     string(19) "50 St. James Street"
                    470:     ["url"]=>
                    471:     string(20) "http://www.JSON.org/"
                    472:     ["comment"]=>
                    473:     string(13) "// /* <!-- --"
                    474:     ["# -- --> */"]=>
                    475:     string(1) " "
                    476:     [" s p a c e d "]=>
                    477:     array(7) {
                    478:       [0]=>
                    479:       int(1)
                    480:       [1]=>
                    481:       int(2)
                    482:       [2]=>
                    483:       int(3)
                    484:       [3]=>
                    485:       int(4)
                    486:       [4]=>
                    487:       int(5)
                    488:       [5]=>
                    489:       int(6)
                    490:       [6]=>
                    491:       int(7)
                    492:     }
                    493:     ["compact"]=>
                    494:     array(7) {
                    495:       [0]=>
                    496:       int(1)
                    497:       [1]=>
                    498:       int(2)
                    499:       [2]=>
                    500:       int(3)
                    501:       [3]=>
                    502:       int(4)
                    503:       [4]=>
                    504:       int(5)
                    505:       [5]=>
                    506:       int(6)
                    507:       [6]=>
                    508:       int(7)
                    509:     }
                    510:     ["jsontext"]=>
                    511:     string(49) "{"object with 1 member":["array with 1 element"]}"
                    512:     ["quotes"]=>
                    513:     string(27) "&#34; " %22 0x22 034 &#x22;"
                    514:     ["/\"쫾몾ꮘﳞ볚
                    515: 
      `1~!@#$%^&*()_+-=[]{}|;:',./<>?"]=>
                    516:     string(23) "A key can be any string"
                    517:   }
                    518:   [9]=>
                    519:   float(0.5)
                    520:   [10]=>
                    521:   float(98.6)
                    522:   [11]=>
                    523:   float(99.44)
                    524:   [12]=>
                    525:   int(1066)
                    526:   [13]=>
                    527:   string(7) "rosebud"
                    528: }
                    529: ENCODE: FROM OBJECT
                    530: ["JSON Test Pattern pass1",{"object with 1 member":["array with 1 element"]},{},[],-42,true,false,null,{"integer":1234567890,"real":-9876.54321,"e":1.23456789e-13,"E":1.23456789e+34,"_empty_":0,"E no .":4000000000000,"zero":0,"one":1,"space":" ","quote":"\"","backslash":"\\","controls":"\b\f\n\r\t","slash":"\/ & \/","alpha":"abcdefghijklmnopqrstuvwyz","ALPHA":"ABCDEFGHIJKLMNOPQRSTUVWYZ","digit":"0123456789","special":"`1~!@#$%^&*()_+-={':[,]}|;.<\/>?","hex":"\u0123\u4567\u89ab\ucdef\uabcd\uef4a","unicode":"\u30d7\u30ec\u30b9\u30ad\u30c3\u30c8","\u30d7\u30ec\u30b9\u30ad\u30c3\u30c8":"\u30d7\u30ec\u30b9\u30ad\u30c3\u30c8","empty_string":"","true":true,"false":false,"null":null,"array":[],"object":{},"123":{"456":{"abc":{"789":"def","012":[1,2,"5",500],"ghi":[1,2,"five",50,"sixty"]}}},"address":"50 St. James Street","url":"http:\/\/www.JSON.org\/","comment":"\/\/ \/* <!-- --","# -- --> *\/":" "," s p a c e d ":[1,2,3,4,5,6,7],"compact":[1,2,3,4,5,6,7],"jsontext":"{\"object with 1 member\":[\"array with 1 element\"]}","quotes":"&#34; \" %22 0x22 034 &#x22;","\/\\\"\ucafe\ubabe\uab98\ufcde\ubcda\uef4a\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',.\/<>?":"A key can be any string"},0.5,98.6,99.44,1066,"rosebud"]
                    531: ENCODE: FROM ARRAY
                    532: ["JSON Test Pattern pass1",{"object with 1 member":["array with 1 element"]},[],[],-42,true,false,null,{"integer":1234567890,"real":-9876.54321,"e":1.23456789e-13,"E":1.23456789e+34,"":0,"E no .":4000000000000,"zero":0,"one":1,"space":" ","quote":"\"","backslash":"\\","controls":"\b\f\n\r\t","slash":"\/ & \/","alpha":"abcdefghijklmnopqrstuvwyz","ALPHA":"ABCDEFGHIJKLMNOPQRSTUVWYZ","digit":"0123456789","special":"`1~!@#$%^&*()_+-={':[,]}|;.<\/>?","hex":"\u0123\u4567\u89ab\ucdef\uabcd\uef4a","unicode":"\u30d7\u30ec\u30b9\u30ad\u30c3\u30c8","\u30d7\u30ec\u30b9\u30ad\u30c3\u30c8":"\u30d7\u30ec\u30b9\u30ad\u30c3\u30c8","empty_string":"","true":true,"false":false,"null":null,"array":[],"object":[],"123":{"456":{"abc":{"789":"def","012":[1,2,"5",500],"ghi":[1,2,"five",50,"sixty"]}}},"address":"50 St. James Street","url":"http:\/\/www.JSON.org\/","comment":"\/\/ \/* <!-- --","# -- --> *\/":" "," s p a c e d ":[1,2,3,4,5,6,7],"compact":[1,2,3,4,5,6,7],"jsontext":"{\"object with 1 member\":[\"array with 1 element\"]}","quotes":"&#34; \" %22 0x22 034 &#x22;","\/\\\"\ucafe\ubabe\uab98\ufcde\ubcda\uef4a\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',.\/<>?":"A key can be any string"},0.5,98.6,99.44,1066,"rosebud"]
                    533: DECODE AGAIN: AS OBJECT
                    534: array(14) {
                    535:   [0]=>
                    536:   string(23) "JSON Test Pattern pass1"
                    537:   [1]=>
                    538:   object(stdClass)#%d (1) {
                    539:     ["object with 1 member"]=>
                    540:     array(1) {
                    541:       [0]=>
                    542:       string(20) "array with 1 element"
                    543:     }
                    544:   }
                    545:   [2]=>
                    546:   object(stdClass)#%d (0) {
                    547:   }
                    548:   [3]=>
                    549:   array(0) {
                    550:   }
                    551:   [4]=>
                    552:   int(-42)
                    553:   [5]=>
                    554:   bool(true)
                    555:   [6]=>
                    556:   bool(false)
                    557:   [7]=>
                    558:   NULL
                    559:   [8]=>
                    560:   object(stdClass)#%d (36) {
                    561:     ["integer"]=>
                    562:     int(1234567890)
                    563:     ["real"]=>
                    564:     float(-9876.54321)
                    565:     ["e"]=>
                    566:     float(1.23456789E-13)
                    567:     ["E"]=>
                    568:     float(1.23456789E+34)
                    569:     ["_empty_"]=>
                    570:     int(0)
                    571:     ["E no ."]=>
                    572:     int(4000000000000)
                    573:     ["zero"]=>
                    574:     int(0)
                    575:     ["one"]=>
                    576:     int(1)
                    577:     ["space"]=>
                    578:     string(1) " "
                    579:     ["quote"]=>
                    580:     string(1) """
                    581:     ["backslash"]=>
                    582:     string(1) "\"
                    583:     ["controls"]=>
                    584:     string(5) "
                    585: 
      "
                    586:     ["slash"]=>
                    587:     string(5) "/ & /"
                    588:     ["alpha"]=>
                    589:     string(25) "abcdefghijklmnopqrstuvwyz"
                    590:     ["ALPHA"]=>
                    591:     string(25) "ABCDEFGHIJKLMNOPQRSTUVWYZ"
                    592:     ["digit"]=>
                    593:     string(10) "0123456789"
                    594:     ["special"]=>
                    595:     string(31) "`1~!@#$%^&*()_+-={':[,]}|;.</>?"
                    596:     ["hex"]=>
                    597:     string(17) "ģ䕧覫췯ꯍ"
                    598:     ["unicode"]=>
                    599:     string(18) "プレスキット"
                    600:     ["プレスキット"]=>
                    601:     string(18) "プレスキット"
                    602:     ["empty_string"]=>
                    603:     string(0) ""
                    604:     ["true"]=>
                    605:     bool(true)
                    606:     ["false"]=>
                    607:     bool(false)
                    608:     ["null"]=>
                    609:     NULL
                    610:     ["array"]=>
                    611:     array(0) {
                    612:     }
                    613:     ["object"]=>
                    614:     object(stdClass)#%d (0) {
                    615:     }
                    616:     ["123"]=>
                    617:     object(stdClass)#%d (1) {
                    618:       ["456"]=>
                    619:       object(stdClass)#%d (1) {
                    620:         ["abc"]=>
                    621:         object(stdClass)#%d (3) {
                    622:           ["789"]=>
                    623:           string(3) "def"
                    624:           ["012"]=>
                    625:           array(4) {
                    626:             [0]=>
                    627:             int(1)
                    628:             [1]=>
                    629:             int(2)
                    630:             [2]=>
                    631:             string(1) "5"
                    632:             [3]=>
                    633:             int(500)
                    634:           }
                    635:           ["ghi"]=>
                    636:           array(5) {
                    637:             [0]=>
                    638:             int(1)
                    639:             [1]=>
                    640:             int(2)
                    641:             [2]=>
                    642:             string(4) "five"
                    643:             [3]=>
                    644:             int(50)
                    645:             [4]=>
                    646:             string(5) "sixty"
                    647:           }
                    648:         }
                    649:       }
                    650:     }
                    651:     ["address"]=>
                    652:     string(19) "50 St. James Street"
                    653:     ["url"]=>
                    654:     string(20) "http://www.JSON.org/"
                    655:     ["comment"]=>
                    656:     string(13) "// /* <!-- --"
                    657:     ["# -- --> */"]=>
                    658:     string(1) " "
                    659:     [" s p a c e d "]=>
                    660:     array(7) {
                    661:       [0]=>
                    662:       int(1)
                    663:       [1]=>
                    664:       int(2)
                    665:       [2]=>
                    666:       int(3)
                    667:       [3]=>
                    668:       int(4)
                    669:       [4]=>
                    670:       int(5)
                    671:       [5]=>
                    672:       int(6)
                    673:       [6]=>
                    674:       int(7)
                    675:     }
                    676:     ["compact"]=>
                    677:     array(7) {
                    678:       [0]=>
                    679:       int(1)
                    680:       [1]=>
                    681:       int(2)
                    682:       [2]=>
                    683:       int(3)
                    684:       [3]=>
                    685:       int(4)
                    686:       [4]=>
                    687:       int(5)
                    688:       [5]=>
                    689:       int(6)
                    690:       [6]=>
                    691:       int(7)
                    692:     }
                    693:     ["jsontext"]=>
                    694:     string(49) "{"object with 1 member":["array with 1 element"]}"
                    695:     ["quotes"]=>
                    696:     string(27) "&#34; " %22 0x22 034 &#x22;"
                    697:     ["/\"쫾몾ꮘﳞ볚
                    698: 
      `1~!@#$%^&*()_+-=[]{}|;:',./<>?"]=>
                    699:     string(23) "A key can be any string"
                    700:   }
                    701:   [9]=>
                    702:   float(0.5)
                    703:   [10]=>
                    704:   float(98.6)
                    705:   [11]=>
                    706:   float(99.44)
                    707:   [12]=>
                    708:   int(1066)
                    709:   [13]=>
                    710:   string(7) "rosebud"
                    711: }
                    712: DECODE AGAIN: AS ARRAY
                    713: array(14) {
                    714:   [0]=>
                    715:   string(23) "JSON Test Pattern pass1"
                    716:   [1]=>
                    717:   array(1) {
                    718:     ["object with 1 member"]=>
                    719:     array(1) {
                    720:       [0]=>
                    721:       string(20) "array with 1 element"
                    722:     }
                    723:   }
                    724:   [2]=>
                    725:   array(0) {
                    726:   }
                    727:   [3]=>
                    728:   array(0) {
                    729:   }
                    730:   [4]=>
                    731:   int(-42)
                    732:   [5]=>
                    733:   bool(true)
                    734:   [6]=>
                    735:   bool(false)
                    736:   [7]=>
                    737:   NULL
                    738:   [8]=>
                    739:   array(36) {
                    740:     ["integer"]=>
                    741:     int(1234567890)
                    742:     ["real"]=>
                    743:     float(-9876.54321)
                    744:     ["e"]=>
                    745:     float(1.23456789E-13)
                    746:     ["E"]=>
                    747:     float(1.23456789E+34)
                    748:     [""]=>
                    749:     int(0)
                    750:     ["E no ."]=>
                    751:     int(4000000000000)
                    752:     ["zero"]=>
                    753:     int(0)
                    754:     ["one"]=>
                    755:     int(1)
                    756:     ["space"]=>
                    757:     string(1) " "
                    758:     ["quote"]=>
                    759:     string(1) """
                    760:     ["backslash"]=>
                    761:     string(1) "\"
                    762:     ["controls"]=>
                    763:     string(5) "
                    764: 
      "
                    765:     ["slash"]=>
                    766:     string(5) "/ & /"
                    767:     ["alpha"]=>
                    768:     string(25) "abcdefghijklmnopqrstuvwyz"
                    769:     ["ALPHA"]=>
                    770:     string(25) "ABCDEFGHIJKLMNOPQRSTUVWYZ"
                    771:     ["digit"]=>
                    772:     string(10) "0123456789"
                    773:     ["special"]=>
                    774:     string(31) "`1~!@#$%^&*()_+-={':[,]}|;.</>?"
                    775:     ["hex"]=>
                    776:     string(17) "ģ䕧覫췯ꯍ"
                    777:     ["unicode"]=>
                    778:     string(18) "プレスキット"
                    779:     ["プレスキット"]=>
                    780:     string(18) "プレスキット"
                    781:     ["empty_string"]=>
                    782:     string(0) ""
                    783:     ["true"]=>
                    784:     bool(true)
                    785:     ["false"]=>
                    786:     bool(false)
                    787:     ["null"]=>
                    788:     NULL
                    789:     ["array"]=>
                    790:     array(0) {
                    791:     }
                    792:     ["object"]=>
                    793:     array(0) {
                    794:     }
                    795:     [123]=>
                    796:     array(1) {
                    797:       [456]=>
                    798:       array(1) {
                    799:         ["abc"]=>
                    800:         array(3) {
                    801:           [789]=>
                    802:           string(3) "def"
                    803:           ["012"]=>
                    804:           array(4) {
                    805:             [0]=>
                    806:             int(1)
                    807:             [1]=>
                    808:             int(2)
                    809:             [2]=>
                    810:             string(1) "5"
                    811:             [3]=>
                    812:             int(500)
                    813:           }
                    814:           ["ghi"]=>
                    815:           array(5) {
                    816:             [0]=>
                    817:             int(1)
                    818:             [1]=>
                    819:             int(2)
                    820:             [2]=>
                    821:             string(4) "five"
                    822:             [3]=>
                    823:             int(50)
                    824:             [4]=>
                    825:             string(5) "sixty"
                    826:           }
                    827:         }
                    828:       }
                    829:     }
                    830:     ["address"]=>
                    831:     string(19) "50 St. James Street"
                    832:     ["url"]=>
                    833:     string(20) "http://www.JSON.org/"
                    834:     ["comment"]=>
                    835:     string(13) "// /* <!-- --"
                    836:     ["# -- --> */"]=>
                    837:     string(1) " "
                    838:     [" s p a c e d "]=>
                    839:     array(7) {
                    840:       [0]=>
                    841:       int(1)
                    842:       [1]=>
                    843:       int(2)
                    844:       [2]=>
                    845:       int(3)
                    846:       [3]=>
                    847:       int(4)
                    848:       [4]=>
                    849:       int(5)
                    850:       [5]=>
                    851:       int(6)
                    852:       [6]=>
                    853:       int(7)
                    854:     }
                    855:     ["compact"]=>
                    856:     array(7) {
                    857:       [0]=>
                    858:       int(1)
                    859:       [1]=>
                    860:       int(2)
                    861:       [2]=>
                    862:       int(3)
                    863:       [3]=>
                    864:       int(4)
                    865:       [4]=>
                    866:       int(5)
                    867:       [5]=>
                    868:       int(6)
                    869:       [6]=>
                    870:       int(7)
                    871:     }
                    872:     ["jsontext"]=>
                    873:     string(49) "{"object with 1 member":["array with 1 element"]}"
                    874:     ["quotes"]=>
                    875:     string(27) "&#34; " %22 0x22 034 &#x22;"
                    876:     ["/\"쫾몾ꮘﳞ볚
                    877: 
      `1~!@#$%^&*()_+-=[]{}|;:',./<>?"]=>
                    878:     string(23) "A key can be any string"
                    879:   }
                    880:   [9]=>
                    881:   float(0.5)
                    882:   [10]=>
                    883:   float(98.6)
                    884:   [11]=>
                    885:   float(99.44)
                    886:   [12]=>
                    887:   int(1066)
                    888:   [13]=>
                    889:   string(7) "rosebud"
                    890: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>