github.com/wangyougui/gf/v2@v2.6.5/encoding/gjson/gjson_z_example_test.go (about) 1 package gjson_test 2 3 import ( 4 "fmt" 5 6 "github.com/wangyougui/gf/v2/encoding/gjson" 7 ) 8 9 func ExampleJson_SetSplitChar() { 10 data := 11 `{ 12 "users" : { 13 "count" : 2, 14 "list" : [ 15 {"name" : "Ming", "score" : 60}, 16 {"name" : "John", "score" : 99.5} 17 ] 18 } 19 }` 20 if j, err := gjson.DecodeToJson(data); err != nil { 21 panic(err) 22 } else { 23 j.SetSplitChar('#') 24 fmt.Println("John Score:", j.Get("users#list#1#score").Float32()) 25 } 26 // Output: 27 // John Score: 99.5 28 } 29 30 func ExampleJson_SetViolenceCheck() { 31 data := 32 `{ 33 "users" : { 34 "count" : 100 35 }, 36 "users.count" : 101 37 }` 38 if j, err := gjson.DecodeToJson(data); err != nil { 39 fmt.Println(err) 40 } else { 41 j.SetViolenceCheck(false) 42 fmt.Println("Users Count:", j.Get("users.count")) 43 j.SetViolenceCheck(true) 44 fmt.Println("Users Count:", j.Get("users.count")) 45 } 46 // Output: 47 // Users Count: 100 48 // Users Count: 101 49 } 50 51 // ======================================================================== 52 // JSON 53 // ======================================================================== 54 func ExampleJson_ToJson() { 55 type BaseInfo struct { 56 Name string 57 Age int 58 } 59 60 info := BaseInfo{ 61 Name: "John", 62 Age: 18, 63 } 64 65 j := gjson.New(info) 66 jsonBytes, _ := j.ToJson() 67 fmt.Println(string(jsonBytes)) 68 69 // Output: 70 // {"Age":18,"Name":"John"} 71 } 72 73 func ExampleJson_ToJsonString() { 74 type BaseInfo struct { 75 Name string 76 Age int 77 } 78 79 info := BaseInfo{ 80 Name: "John", 81 Age: 18, 82 } 83 84 j := gjson.New(info) 85 jsonStr, _ := j.ToJsonString() 86 fmt.Println(jsonStr) 87 88 // Output: 89 // {"Age":18,"Name":"John"} 90 } 91 92 func ExampleJson_ToJsonIndent() { 93 type BaseInfo struct { 94 Name string 95 Age int 96 } 97 98 info := BaseInfo{ 99 Name: "John", 100 Age: 18, 101 } 102 103 j := gjson.New(info) 104 jsonBytes, _ := j.ToJsonIndent() 105 fmt.Println(string(jsonBytes)) 106 107 // Output: 108 // { 109 // "Age": 18, 110 // "Name": "John" 111 // } 112 } 113 114 func ExampleJson_ToJsonIndentString() { 115 type BaseInfo struct { 116 Name string 117 Age int 118 } 119 120 info := BaseInfo{ 121 Name: "John", 122 Age: 18, 123 } 124 125 j := gjson.New(info) 126 jsonStr, _ := j.ToJsonIndentString() 127 fmt.Println(jsonStr) 128 129 // Output: 130 // { 131 // "Age": 18, 132 // "Name": "John" 133 // } 134 } 135 136 func ExampleJson_MustToJson() { 137 type BaseInfo struct { 138 Name string 139 Age int 140 } 141 142 info := BaseInfo{ 143 Name: "John", 144 Age: 18, 145 } 146 147 j := gjson.New(info) 148 jsonBytes := j.MustToJson() 149 fmt.Println(string(jsonBytes)) 150 151 // Output: 152 // {"Age":18,"Name":"John"} 153 } 154 155 func ExampleJson_MustToJsonString() { 156 type BaseInfo struct { 157 Name string 158 Age int 159 } 160 161 info := BaseInfo{ 162 Name: "John", 163 Age: 18, 164 } 165 166 j := gjson.New(info) 167 jsonStr := j.MustToJsonString() 168 fmt.Println(jsonStr) 169 170 // Output: 171 // {"Age":18,"Name":"John"} 172 } 173 174 func ExampleJson_MustToJsonIndent() { 175 type BaseInfo struct { 176 Name string 177 Age int 178 } 179 180 info := BaseInfo{ 181 Name: "John", 182 Age: 18, 183 } 184 185 j := gjson.New(info) 186 jsonBytes := j.MustToJsonIndent() 187 fmt.Println(string(jsonBytes)) 188 189 // Output: 190 // { 191 // "Age": 18, 192 // "Name": "John" 193 // } 194 } 195 196 func ExampleJson_MustToJsonIndentString() { 197 type BaseInfo struct { 198 Name string 199 Age int 200 } 201 202 info := BaseInfo{ 203 Name: "John", 204 Age: 18, 205 } 206 207 j := gjson.New(info) 208 jsonStr := j.MustToJsonIndentString() 209 fmt.Println(jsonStr) 210 211 // Output: 212 // { 213 // "Age": 18, 214 // "Name": "John" 215 // } 216 } 217 218 // ======================================================================== 219 // XML 220 // ======================================================================== 221 func ExampleJson_ToXml() { 222 type BaseInfo struct { 223 Name string 224 Age int 225 } 226 227 info := BaseInfo{ 228 Name: "John", 229 Age: 18, 230 } 231 232 j := gjson.New(info) 233 xmlBytes, _ := j.ToXml() 234 fmt.Println(string(xmlBytes)) 235 236 // Output: 237 // <doc><Age>18</Age><Name>John</Name></doc> 238 } 239 240 func ExampleJson_ToXmlString() { 241 type BaseInfo struct { 242 Name string 243 Age int 244 } 245 246 info := BaseInfo{ 247 Name: "John", 248 Age: 18, 249 } 250 251 j := gjson.New(info) 252 xmlStr, _ := j.ToXmlString() 253 fmt.Println(string(xmlStr)) 254 255 // Output: 256 // <doc><Age>18</Age><Name>John</Name></doc> 257 } 258 259 func ExampleJson_ToXmlIndent() { 260 type BaseInfo struct { 261 Name string 262 Age int 263 } 264 265 info := BaseInfo{ 266 Name: "John", 267 Age: 18, 268 } 269 270 j := gjson.New(info) 271 xmlBytes, _ := j.ToXmlIndent() 272 fmt.Println(string(xmlBytes)) 273 274 // Output: 275 // <doc> 276 // <Age>18</Age> 277 // <Name>John</Name> 278 // </doc> 279 } 280 281 func ExampleJson_ToXmlIndentString() { 282 type BaseInfo struct { 283 Name string 284 Age int 285 } 286 287 info := BaseInfo{ 288 Name: "John", 289 Age: 18, 290 } 291 292 j := gjson.New(info) 293 xmlStr, _ := j.ToXmlIndentString() 294 fmt.Println(string(xmlStr)) 295 296 // Output: 297 // <doc> 298 // <Age>18</Age> 299 // <Name>John</Name> 300 // </doc> 301 } 302 303 func ExampleJson_MustToXml() { 304 type BaseInfo struct { 305 Name string 306 Age int 307 } 308 309 info := BaseInfo{ 310 Name: "John", 311 Age: 18, 312 } 313 314 j := gjson.New(info) 315 xmlBytes := j.MustToXml() 316 fmt.Println(string(xmlBytes)) 317 318 // Output: 319 // <doc><Age>18</Age><Name>John</Name></doc> 320 } 321 322 func ExampleJson_MustToXmlString() { 323 type BaseInfo struct { 324 Name string 325 Age int 326 } 327 328 info := BaseInfo{ 329 Name: "John", 330 Age: 18, 331 } 332 333 j := gjson.New(info) 334 xmlStr := j.MustToXmlString() 335 fmt.Println(string(xmlStr)) 336 337 // Output: 338 // <doc><Age>18</Age><Name>John</Name></doc> 339 } 340 341 func ExampleJson_MustToXmlIndent() { 342 type BaseInfo struct { 343 Name string 344 Age int 345 } 346 347 info := BaseInfo{ 348 Name: "John", 349 Age: 18, 350 } 351 352 j := gjson.New(info) 353 xmlBytes := j.MustToXmlIndent() 354 fmt.Println(string(xmlBytes)) 355 356 // Output: 357 // <doc> 358 // <Age>18</Age> 359 // <Name>John</Name> 360 // </doc> 361 } 362 363 func ExampleJson_MustToXmlIndentString() { 364 type BaseInfo struct { 365 Name string 366 Age int 367 } 368 369 info := BaseInfo{ 370 Name: "John", 371 Age: 18, 372 } 373 374 j := gjson.New(info) 375 xmlStr := j.MustToXmlIndentString() 376 fmt.Println(string(xmlStr)) 377 378 // Output: 379 // <doc> 380 // <Age>18</Age> 381 // <Name>John</Name> 382 // </doc> 383 } 384 385 // ======================================================================== 386 // YAML 387 // ======================================================================== 388 func ExampleJson_ToYaml() { 389 type BaseInfo struct { 390 Name string 391 Age int 392 } 393 394 info := BaseInfo{ 395 Name: "John", 396 Age: 18, 397 } 398 399 j := gjson.New(info) 400 YamlBytes, _ := j.ToYaml() 401 fmt.Println(string(YamlBytes)) 402 403 // Output: 404 // Age: 18 405 // Name: John 406 } 407 408 func ExampleJson_ToYamlString() { 409 type BaseInfo struct { 410 Name string 411 Age int 412 } 413 414 info := BaseInfo{ 415 Name: "John", 416 Age: 18, 417 } 418 419 j := gjson.New(info) 420 YamlStr, _ := j.ToYamlString() 421 fmt.Println(string(YamlStr)) 422 423 // Output: 424 // Age: 18 425 // Name: John 426 } 427 428 func ExampleJson_ToYamlIndent() { 429 type BaseInfo struct { 430 Name string 431 Age int 432 } 433 434 info := BaseInfo{ 435 Name: "John", 436 Age: 18, 437 } 438 439 j := gjson.New(info) 440 YamlBytes, _ := j.ToYamlIndent("") 441 fmt.Println(string(YamlBytes)) 442 443 // Output: 444 // Age: 18 445 // Name: John 446 } 447 448 func ExampleJson_MustToYaml() { 449 type BaseInfo struct { 450 Name string 451 Age int 452 } 453 454 info := BaseInfo{ 455 Name: "John", 456 Age: 18, 457 } 458 459 j := gjson.New(info) 460 YamlBytes := j.MustToYaml() 461 fmt.Println(string(YamlBytes)) 462 463 // Output: 464 // Age: 18 465 // Name: John 466 } 467 468 func ExampleJson_MustToYamlString() { 469 type BaseInfo struct { 470 Name string 471 Age int 472 } 473 474 info := BaseInfo{ 475 Name: "John", 476 Age: 18, 477 } 478 479 j := gjson.New(info) 480 YamlStr := j.MustToYamlString() 481 fmt.Println(string(YamlStr)) 482 483 // Output: 484 // Age: 18 485 // Name: John 486 } 487 488 // ======================================================================== 489 // TOML 490 // ======================================================================== 491 func ExampleJson_ToToml() { 492 type BaseInfo struct { 493 Name string 494 Age int 495 } 496 497 info := BaseInfo{ 498 Name: "John", 499 Age: 18, 500 } 501 502 j := gjson.New(info) 503 TomlBytes, _ := j.ToToml() 504 fmt.Println(string(TomlBytes)) 505 506 // Output: 507 // Age = 18 508 // Name = "John" 509 } 510 511 func ExampleJson_ToTomlString() { 512 type BaseInfo struct { 513 Name string 514 Age int 515 } 516 517 info := BaseInfo{ 518 Name: "John", 519 Age: 18, 520 } 521 522 j := gjson.New(info) 523 TomlStr, _ := j.ToTomlString() 524 fmt.Println(string(TomlStr)) 525 526 // Output: 527 // Age = 18 528 // Name = "John" 529 } 530 531 func ExampleJson_MustToToml() { 532 type BaseInfo struct { 533 Name string 534 Age int 535 } 536 537 info := BaseInfo{ 538 Name: "John", 539 Age: 18, 540 } 541 542 j := gjson.New(info) 543 TomlBytes := j.MustToToml() 544 fmt.Println(string(TomlBytes)) 545 546 // Output: 547 // Age = 18 548 // Name = "John" 549 } 550 551 func ExampleJson_MustToTomlString() { 552 type BaseInfo struct { 553 Name string 554 Age int 555 } 556 557 info := BaseInfo{ 558 Name: "John", 559 Age: 18, 560 } 561 562 j := gjson.New(info) 563 TomlStr := j.MustToTomlString() 564 fmt.Println(string(TomlStr)) 565 566 // Output: 567 // Age = 18 568 // Name = "John" 569 } 570 571 // ======================================================================== 572 // INI 573 // ======================================================================== 574 func ExampleJson_ToIni() { 575 type BaseInfo struct { 576 Name string 577 Age int 578 } 579 580 info := BaseInfo{ 581 Name: "John", 582 Age: 18, 583 } 584 585 j := gjson.New(info) 586 IniBytes, _ := j.ToIni() 587 fmt.Println(string(IniBytes)) 588 589 // May Output: 590 // Name=John 591 // Age=18 592 } 593 594 func ExampleJson_ToIniString() { 595 type BaseInfo struct { 596 Name string 597 } 598 599 info := BaseInfo{ 600 Name: "John", 601 } 602 603 j := gjson.New(info) 604 IniStr, _ := j.ToIniString() 605 fmt.Println(string(IniStr)) 606 607 // Output: 608 // Name=John 609 } 610 611 func ExampleJson_MustToIni() { 612 type BaseInfo struct { 613 Name string 614 } 615 616 info := BaseInfo{ 617 Name: "John", 618 } 619 620 j := gjson.New(info) 621 IniBytes := j.MustToIni() 622 fmt.Println(string(IniBytes)) 623 624 // Output: 625 // Name=John 626 } 627 628 func ExampleJson_MustToIniString() { 629 type BaseInfo struct { 630 Name string 631 } 632 633 info := BaseInfo{ 634 Name: "John", 635 } 636 637 j := gjson.New(info) 638 IniStr := j.MustToIniString() 639 fmt.Println(string(IniStr)) 640 641 // Output: 642 // Name=John 643 } 644 645 // ======================================================================== 646 // Properties 647 // ======================================================================== 648 func ExampleJson_ToProperties() { 649 type BaseInfo struct { 650 Name string 651 Age int 652 } 653 654 info := BaseInfo{ 655 Name: "John", 656 Age: 18, 657 } 658 659 j := gjson.New(info) 660 pr, _ := j.ToProperties() 661 fmt.Println(string(pr)) 662 663 // May Output: 664 // name = John 665 // age = 18 666 } 667 668 func ExampleJson_ToPropertiesString() { 669 type BaseInfo struct { 670 Name string 671 } 672 673 info := BaseInfo{ 674 Name: "John", 675 } 676 677 j := gjson.New(info) 678 pr, _ := j.ToPropertiesString() 679 fmt.Println(pr) 680 681 // Output: 682 // name = John 683 } 684 685 func ExampleJson_MustToProperties() { 686 type BaseInfo struct { 687 Name string 688 } 689 690 info := BaseInfo{ 691 Name: "John", 692 } 693 694 j := gjson.New(info) 695 pr := j.MustToProperties() 696 fmt.Println(string(pr)) 697 698 // Output: 699 // name = John 700 } 701 702 func ExampleJson_MustToPropertiesString() { 703 type BaseInfo struct { 704 Name string 705 } 706 707 info := BaseInfo{ 708 Name: "John", 709 } 710 711 j := gjson.New(info) 712 pr := j.MustToPropertiesString() 713 fmt.Println(pr) 714 715 // Output: 716 // name = John 717 } 718 719 func ExampleJson_MarshalJSON() { 720 type BaseInfo struct { 721 Name string 722 Age int 723 } 724 725 info := BaseInfo{ 726 Name: "John", 727 Age: 18, 728 } 729 730 j := gjson.New(info) 731 jsonBytes, _ := j.MarshalJSON() 732 fmt.Println(string(jsonBytes)) 733 734 // Output: 735 // {"Age":18,"Name":"John"} 736 } 737 738 func ExampleJson_UnmarshalJSON() { 739 jsonStr := `{"Age":18,"Name":"John"}` 740 741 j := gjson.New("") 742 j.UnmarshalJSON([]byte(jsonStr)) 743 fmt.Println(j.Map()) 744 745 // Output: 746 // map[Age:18 Name:John] 747 } 748 749 func ExampleJson_UnmarshalValue_Yaml() { 750 yamlContent := 751 `base: 752 name: john 753 score: 100` 754 755 j := gjson.New("") 756 j.UnmarshalValue([]byte(yamlContent)) 757 fmt.Println(j.Var().String()) 758 759 // Output: 760 // {"base":{"name":"john","score":100}} 761 } 762 763 func ExampleJson_UnmarshalValue_Xml() { 764 xmlStr := `<?xml version="1.0" encoding="UTF-8"?><doc><name>john</name><score>100</score></doc>` 765 766 j := gjson.New("") 767 j.UnmarshalValue([]byte(xmlStr)) 768 fmt.Println(j.Var().String()) 769 770 // Output: 771 // {"doc":{"name":"john","score":"100"}} 772 } 773 774 func ExampleJson_MapStrAny() { 775 type BaseInfo struct { 776 Name string 777 Age int 778 } 779 780 info := BaseInfo{ 781 Name: "John", 782 Age: 18, 783 } 784 785 j := gjson.New(info) 786 fmt.Println(j.MapStrAny()) 787 788 // Output: 789 // map[Age:18 Name:John] 790 } 791 792 func ExampleJson_Interfaces() { 793 type BaseInfo struct { 794 Name string 795 Age int 796 } 797 798 infoList := []BaseInfo{ 799 { 800 Name: "John", 801 Age: 18, 802 }, 803 { 804 Name: "Tom", 805 Age: 20, 806 }, 807 } 808 809 j := gjson.New(infoList) 810 fmt.Println(j.Interfaces()) 811 812 // Output: 813 // [{John 18} {Tom 20}] 814 } 815 816 func ExampleJson_Interface() { 817 type BaseInfo struct { 818 Name string 819 Age int 820 } 821 822 info := BaseInfo{ 823 Name: "John", 824 Age: 18, 825 } 826 827 j := gjson.New(info) 828 fmt.Println(j.Interface()) 829 830 var nilJ *gjson.Json = nil 831 fmt.Println(nilJ.Interface()) 832 833 // Output: 834 // map[Age:18 Name:John] 835 // <nil> 836 } 837 838 func ExampleJson_Var() { 839 type BaseInfo struct { 840 Name string 841 Age int 842 } 843 844 info := BaseInfo{ 845 Name: "John", 846 Age: 18, 847 } 848 849 j := gjson.New(info) 850 fmt.Println(j.Var().String()) 851 fmt.Println(j.Var().Map()) 852 853 // Output: 854 // {"Age":18,"Name":"John"} 855 // map[Age:18 Name:John] 856 } 857 858 func ExampleJson_IsNil() { 859 data1 := []byte(`{"n":123456789, "m":{"k":"v"}, "a":[1,2,3]}`) 860 data2 := []byte(`{"n":123456789, "m":{"k":"v"}, "a":[1,2,3]`) 861 862 j1, _ := gjson.LoadContent(data1) 863 fmt.Println(j1.IsNil()) 864 865 j2, _ := gjson.LoadContent(data2) 866 fmt.Println(j2.IsNil()) 867 868 // Output: 869 // false 870 // true 871 } 872 873 func ExampleJson_Get() { 874 data := 875 `{ 876 "users" : { 877 "count" : 1, 878 "array" : ["John", "Ming"] 879 } 880 }` 881 882 j, _ := gjson.LoadContent(data) 883 fmt.Println(j.Get(".")) 884 fmt.Println(j.Get("users")) 885 fmt.Println(j.Get("users.count")) 886 fmt.Println(j.Get("users.array")) 887 888 var nilJ *gjson.Json = nil 889 fmt.Println(nilJ.Get(".")) 890 891 // Output: 892 // {"users":{"array":["John","Ming"],"count":1}} 893 // {"array":["John","Ming"],"count":1} 894 // 1 895 // ["John","Ming"] 896 } 897 898 func ExampleJson_GetJson() { 899 data := 900 `{ 901 "users" : { 902 "count" : 1, 903 "array" : ["John", "Ming"] 904 } 905 }` 906 907 j, _ := gjson.LoadContent(data) 908 909 fmt.Println(j.GetJson("users.array").Array()) 910 911 // Output: 912 // [John Ming] 913 } 914 915 func ExampleJson_GetJsons() { 916 data := 917 `{ 918 "users" : { 919 "count" : 3, 920 "array" : [{"Age":18,"Name":"John"}, {"Age":20,"Name":"Tom"}] 921 } 922 }` 923 924 j, _ := gjson.LoadContent(data) 925 926 jsons := j.GetJsons("users.array") 927 for _, json := range jsons { 928 fmt.Println(json.Interface()) 929 } 930 931 // Output: 932 // map[Age:18 Name:John] 933 // map[Age:20 Name:Tom] 934 } 935 936 func ExampleJson_GetJsonMap() { 937 data := 938 `{ 939 "users" : { 940 "count" : 1, 941 "array" : { 942 "info" : {"Age":18,"Name":"John"}, 943 "addr" : {"City":"Chengdu","Company":"Tencent"} 944 } 945 } 946 }` 947 948 j, _ := gjson.LoadContent(data) 949 950 jsonMap := j.GetJsonMap("users.array") 951 952 for _, json := range jsonMap { 953 fmt.Println(json.Interface()) 954 } 955 956 // May Output: 957 // map[City:Chengdu Company:Tencent] 958 // map[Age:18 Name:John] 959 } 960 961 func ExampleJson_Set() { 962 type BaseInfo struct { 963 Name string 964 Age int 965 } 966 967 info := BaseInfo{ 968 Name: "John", 969 Age: 18, 970 } 971 972 j := gjson.New(info) 973 j.Set("Addr", "ChengDu") 974 j.Set("Friends.0", "Tom") 975 fmt.Println(j.Var().String()) 976 977 // Output: 978 // {"Addr":"ChengDu","Age":18,"Friends":["Tom"],"Name":"John"} 979 } 980 981 func ExampleJson_MustSet() { 982 type BaseInfo struct { 983 Name string 984 Age int 985 } 986 987 info := BaseInfo{ 988 Name: "John", 989 Age: 18, 990 } 991 992 j := gjson.New(info) 993 j.MustSet("Addr", "ChengDu") 994 fmt.Println(j.Var().String()) 995 996 // Output: 997 // {"Addr":"ChengDu","Age":18,"Name":"John"} 998 } 999 1000 func ExampleJson_Remove() { 1001 type BaseInfo struct { 1002 Name string 1003 Age int 1004 } 1005 1006 info := BaseInfo{ 1007 Name: "John", 1008 Age: 18, 1009 } 1010 1011 j := gjson.New(info) 1012 j.Remove("Age") 1013 fmt.Println(j.Var().String()) 1014 1015 // Output: 1016 // {"Name":"John"} 1017 } 1018 1019 func ExampleJson_MustRemove() { 1020 type BaseInfo struct { 1021 Name string 1022 Age int 1023 } 1024 1025 info := BaseInfo{ 1026 Name: "John", 1027 Age: 18, 1028 } 1029 1030 j := gjson.New(info) 1031 j.MustRemove("Age") 1032 fmt.Println(j.Var().String()) 1033 1034 // Output: 1035 // {"Name":"John"} 1036 } 1037 1038 func ExampleJson_Contains() { 1039 type BaseInfo struct { 1040 Name string 1041 Age int 1042 } 1043 1044 info := BaseInfo{ 1045 Name: "John", 1046 Age: 18, 1047 } 1048 1049 j := gjson.New(info) 1050 fmt.Println(j.Contains("Age")) 1051 fmt.Println(j.Contains("Addr")) 1052 1053 // Output: 1054 // true 1055 // false 1056 } 1057 1058 func ExampleJson_Len() { 1059 data := 1060 `{ 1061 "users" : { 1062 "count" : 1, 1063 "nameArray" : ["Join", "Tom"], 1064 "infoMap" : { 1065 "name" : "Join", 1066 "age" : 18, 1067 "addr" : "ChengDu" 1068 } 1069 } 1070 }` 1071 1072 j, _ := gjson.LoadContent(data) 1073 1074 fmt.Println(j.Len("users.nameArray")) 1075 fmt.Println(j.Len("users.infoMap")) 1076 1077 // Output: 1078 // 2 1079 // 3 1080 } 1081 1082 func ExampleJson_Append() { 1083 data := 1084 `{ 1085 "users" : { 1086 "count" : 1, 1087 "array" : ["John", "Ming"] 1088 } 1089 }` 1090 1091 j, _ := gjson.LoadContent(data) 1092 1093 j.Append("users.array", "Lily") 1094 1095 fmt.Println(j.Get("users.array").Array()) 1096 1097 // Output: 1098 // [John Ming Lily] 1099 } 1100 1101 func ExampleJson_MustAppend() { 1102 data := 1103 `{ 1104 "users" : { 1105 "count" : 1, 1106 "array" : ["John", "Ming"] 1107 } 1108 }` 1109 1110 j, _ := gjson.LoadContent(data) 1111 1112 j.MustAppend("users.array", "Lily") 1113 1114 fmt.Println(j.Get("users.array").Array()) 1115 1116 // Output: 1117 // [John Ming Lily] 1118 } 1119 1120 func ExampleJson_Map() { 1121 data := 1122 `{ 1123 "users" : { 1124 "count" : 1, 1125 "info" : { 1126 "name" : "John", 1127 "age" : 18, 1128 "addr" : "ChengDu" 1129 } 1130 } 1131 }` 1132 1133 j, _ := gjson.LoadContent(data) 1134 1135 fmt.Println(j.Get("users.info").Map()) 1136 1137 // Output: 1138 // map[addr:ChengDu age:18 name:John] 1139 } 1140 1141 func ExampleJson_Array() { 1142 data := 1143 `{ 1144 "users" : { 1145 "count" : 1, 1146 "array" : ["John", "Ming"] 1147 } 1148 }` 1149 1150 j, _ := gjson.LoadContent(data) 1151 1152 fmt.Println(j.Get("users.array")) 1153 1154 // Output: 1155 // ["John","Ming"] 1156 } 1157 1158 func ExampleJson_Scan() { 1159 data := `{"name":"john","age":"18"}` 1160 1161 type BaseInfo struct { 1162 Name string 1163 Age int 1164 } 1165 1166 info := BaseInfo{} 1167 1168 j, _ := gjson.LoadContent(data) 1169 j.Scan(&info) 1170 1171 fmt.Println(info) 1172 1173 // May Output: 1174 // {john 18} 1175 } 1176 1177 func ExampleJson_Dump() { 1178 data := `{"name":"john","age":"18"}` 1179 1180 j, _ := gjson.LoadContent(data) 1181 j.Dump() 1182 1183 // May Output: 1184 // { 1185 // "name": "john", 1186 // "age": "18", 1187 // } 1188 }