Lines Matching defs:json
4 // |_____|_____|_____|_|___| https://github.com/nlohmann/json
12 #include <nlohmann/json.hpp>
13 using nlohmann::json;
25 struct SaxEventLogger : public nlohmann::json_sax<json>
39 bool number_integer(json::number_integer_t val) override
45 bool number_unsigned(json::number_unsigned_t val) override
51 bool number_float(json::number_float_t /*val*/, const std::string& s) override
63 bool binary(json::binary_t& val) override
122 bool parse_error(std::size_t position, const std::string& /*last_token*/, const json::exception& /*ex*/) override
231 json j = json::parse(ss1);
232 CHECK(json::accept(ss2));
233 CHECK(j == json({"foo", 1, 2, 3, false, {{"one", 1}}}));
236 CHECK(json::sax_parse(ss3, &l));
250 json j = json::parse(s);
251 CHECK(json::accept(s));
252 CHECK(j == json({"foo", 1, 2, 3, false, {{"one", 1}}}));
255 CHECK(json::sax_parse(s, &l));
268 json::string_t s = R"(["foo",1,2,3,false,{"one":1}])";
269 json j = json::parse(s);
270 CHECK(json::accept(s));
271 CHECK(j == json({"foo", 1, 2, 3, false, {{"one", 1}}}));
274 CHECK(json::sax_parse(s, &l));
289 json j;
291 CHECK(j == json({"foo", 1, 2, 3, false, {{"one", 1}}}));
298 json j;
300 CHECK(j == json({"foo", 1, 2, 3, false, {{"one", 1}}}));
305 CHECK("[\"foo\",1,2,3,false,{\"one\":1}]"_json == json({"foo", 1, 2, 3, false, {{"one", 1}}}));
322 json _;
323 CHECK_THROWS_WITH_AS(_ = json::parse(ss1), "[json.exception.parse_error.101] parse error at line 1, column 29: syntax error while parsing array - unexpected end of input; expected ']'", json::parse_error&);
324 CHECK(!json::accept(ss3));
326 json j_error;
327 CHECK_NOTHROW(j_error = json::parse(ss4, nullptr, false));
331 CHECK(!json::sax_parse(ss5, &l));
344 json::string_t s = R"(["foo",1,2,3,false,{"one":1})";
345 json _;
346 CHECK_THROWS_WITH_AS(_ = json::parse(s), "[json.exception.parse_error.101] parse error at line 1, column 29: syntax error while parsing array - unexpected end of input; expected ']'", json::parse_error&);
347 CHECK(!json::accept(s));
349 json j_error;
350 CHECK_NOTHROW(j_error = json::parse(s, nullptr, false));
354 CHECK(!json::sax_parse(s, &l));
369 json j;
370 CHECK_THROWS_WITH_AS(j << ss, "[json.exception.parse_error.101] parse error at line 1, column 29: syntax error while parsing array - unexpected end of input; expected ']'", json::parse_error&);
377 json j;
378 CHECK_THROWS_WITH_AS(ss >> j, "[json.exception.parse_error.101] parse error at line 1, column 29: syntax error while parsing array - unexpected end of input; expected ']'", json::parse_error&);
383 CHECK_THROWS_WITH_AS("[\"foo\",1,2,3,false,{\"one\":1}"_json, "[json.exception.parse_error.101] parse error at line 1, column 29: syntax error while parsing array - unexpected end of input; expected ']'", json::parse_error&);
394 CHECK(json::parse(v) == json(true));
395 CHECK(json::accept(v));
398 CHECK(json::sax_parse(v, &l));
406 CHECK(json::parse(v) == json(true));
407 CHECK(json::accept(v));
410 CHECK(json::sax_parse(v, &l));
418 CHECK(json::parse(v) == json(true));
419 CHECK(json::accept(v));
422 CHECK(json::sax_parse(v, &l));
435 CHECK(json::parse(v) == json(true));
436 CHECK(json::accept(v));
439 CHECK(json::sax_parse(v, &l));
449 CHECK(json::parse(v) == json(true));
450 CHECK(json::accept(v));
453 CHECK(json::sax_parse(v, &l));
461 CHECK(json::parse(v) == json(true));
462 CHECK(json::accept(v));
465 CHECK(json::sax_parse(v, &l));
473 json _;
474 CHECK_THROWS_AS(_ = json::parse(v), json::parse_error&);
475 CHECK(!json::accept(v));
478 CHECK(!json::sax_parse(v, &l));
489 CHECK(json::parse(std::begin(v), std::end(v)) == json(true));
490 CHECK(json::accept(std::begin(v), std::end(v)));
493 CHECK(json::sax_parse(std::begin(v), std::end(v), &l));
502 CHECK(json::parse(std::begin(v), std::end(v)) == json(true));
503 CHECK(json::accept(std::begin(v), std::end(v)));
506 CHECK(json::sax_parse(std::begin(v), std::end(v), &l));
514 CHECK(json::parse(std::begin(v), std::end(v)) == json(true));
515 CHECK(json::accept(std::begin(v), std::end(v)));
518 CHECK(json::sax_parse(std::begin(v), std::end(v), &l));
526 CHECK(json::parse(std::begin(v), std::end(v)) == json(true));
527 CHECK(json::accept(std::begin(v), std::end(v)));
530 CHECK(json::sax_parse(std::begin(v), std::end(v), &l));
538 CHECK(json::parse(std::begin(v), std::end(v)) == json(true));
539 CHECK(json::accept(std::begin(v), std::end(v)));
542 CHECK(json::sax_parse(std::begin(v), std::end(v), &l));
550 CHECK(json::parse(std::begin(v), std::end(v)) == json(true));
551 CHECK(json::accept(std::begin(v), std::end(v)));
554 CHECK(json::sax_parse(std::begin(v), std::end(v), &l));
562 json _;
563 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
564 CHECK(!json::accept(std::begin(v), std::end(v)));
567 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
574 using nlohmann::json;
585 json j;
586 json_sax_dom_parser<json> sax(j, true);
588 CHECK(json::sax_parse(proxy(first), proxy(last), &sax,
589 input_format_t::json, false));
601 json _;
602 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
603 CHECK(!json::accept(std::begin(v), std::end(v)));
605 json j_error;
606 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
610 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
618 json _;
619 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
620 CHECK(!json::accept(std::begin(v), std::end(v)));
622 json j_error;
623 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
627 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
635 json _;
636 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
637 CHECK(!json::accept(std::begin(v), std::end(v)));
639 json j_error;
640 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
644 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
652 json _;
653 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
654 CHECK(!json::accept(std::begin(v), std::end(v)));
656 json j_error;
657 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
661 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
669 json _;
670 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
671 CHECK(!json::accept(std::begin(v), std::end(v)));
673 json j_error;
674 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
678 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
686 json _;
687 CHECK_THROWS_WITH_AS(_ = json::parse(std::begin(v), std::end(v)), "[json.exception.parse_error.101] parse error at line 1, column 4: syntax error while parsing value - invalid string: ill-formed UTF-8 byte; last read: '\"\x7f\xdf\x7f'", json::parse_error&);
688 CHECK(!json::accept(std::begin(v), std::end(v)));
690 json j_error;
691 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
695 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
703 json _;
704 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
705 CHECK(!json::accept(std::begin(v), std::end(v)));
707 json j_error;
708 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
712 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
720 json _;
721 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
722 CHECK(!json::accept(std::begin(v), std::end(v)));
724 json j_error;
725 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
729 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
737 json _;
738 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
739 CHECK(!json::accept(std::begin(v), std::end(v)));
741 json j_error;
742 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
746 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
754 json _;
755 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
756 CHECK(!json::accept(std::begin(v), std::end(v)));
758 json j_error;
759 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
763 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
771 json _;
772 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
773 CHECK(!json::accept(std::begin(v), std::end(v)));
775 json j_error;
776 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
780 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
788 json _;
789 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
790 CHECK(!json::accept(std::begin(v), std::end(v)));
792 json j_error;
793 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
797 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
805 json _;
806 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
807 CHECK(!json::accept(std::begin(v), std::end(v)));
809 json j_error;
810 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
814 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
822 json _;
823 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
824 CHECK(!json::accept(std::begin(v), std::end(v)));
826 json j_error;
827 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
831 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
839 json _;
840 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
841 CHECK(!json::accept(std::begin(v), std::end(v)));
843 json j_error;
844 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
848 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
856 json _;
857 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
858 CHECK(!json::accept(std::begin(v), std::end(v)));
860 json j_error;
861 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
865 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
882 json _;
883 CHECK_THROWS_WITH_AS(_ = json::parse(bom), "[json.exception.parse_error.101] parse error at line 1, column 4: syntax error while parsing value - unexpected end of input; expected '[', '{', or a literal", json::parse_error&);
885 CHECK_THROWS_WITH_AS(_ = json::parse(std::istringstream(bom)), "[json.exception.parse_error.101] parse error at line 1, column 4: syntax error while parsing value - unexpected end of input; expected '[', '{', or a literal", json::parse_error&);
888 CHECK(!json::sax_parse(bom, &l));
898 CHECK(json::parse(bom + "1") == 1);
899 CHECK(json::parse(std::istringstream(bom + "1")) == 1);
903 CHECK(json::sax_parse(std::istringstream(bom + "1"), &l1));
904 CHECK(json::sax_parse(bom + "1", &l2));
919 json _;
920 CHECK_THROWS_WITH_AS(_ = json::parse(bom.substr(0, 2)), "[json.exception.parse_error.101] parse error at line 1, column 3: syntax error while parsing value - invalid BOM; must be 0xEF 0xBB 0xBF if given; last read: '\xEF\xBB'", json::parse_error&);
922 CHECK_THROWS_WITH_AS(_ = json::parse(std::istringstream(bom.substr(0, 2))), "[json.exception.parse_error.101] parse error at line 1, column 3: syntax error while parsing value - invalid BOM; must be 0xEF 0xBB 0xBF if given; last read: '\xEF\xBB'", json::parse_error&);
926 CHECK(!json::sax_parse(std::istringstream(bom.substr(0, 2)), &l1));
927 CHECK(!json::sax_parse(bom.substr(0, 2), &l2));
942 json _;
943 CHECK_THROWS_WITH_AS(_ = json::parse(bom.substr(0, 1)), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid BOM; must be 0xEF 0xBB 0xBF if given; last read: '\xEF'", json::parse_error&);
945 CHECK_THROWS_WITH_AS(_ = json::parse(std::istringstream(bom.substr(0, 1))), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid BOM; must be 0xEF 0xBB 0xBF if given; last read: '\xEF'", json::parse_error&);
949 CHECK(!json::sax_parse(std::istringstream(bom.substr(0, 1)), &l1));
950 CHECK(!json::sax_parse(bom.substr(0, 1), &l2));
986 CHECK(json::parse(s + "null") == json());
987 CHECK(json::parse(std::istringstream(s + "null")) == json());
990 CHECK(json::sax_parse(s + "null", &l));
1000 json _;
1001 CHECK_THROWS_AS(_ = json::parse(s + "null"), json::parse_error&);
1002 CHECK_THROWS_AS(_ = json::parse(std::istringstream(s + "null")), json::parse_error&);
1005 CHECK(!json::sax_parse(s + "null", &l));
1038 json j;
1055 json::sax_parse(s, &default_logger);
1065 json::sax_parse(s, &exit_after_start_object);
1074 json::sax_parse(s, &exit_after_key);
1083 json::sax_parse(s, &exit_after_start_array);
1107 CHECK(json::accept(line));
1126 CHECK(json::accept(line));
1143 CHECK(json::parse(v) == json(true));
1144 CHECK(json::accept(v));
1147 CHECK(json::sax_parse(v, &l));
1157 CHECK(json::parse(v).dump(-1, ' ', true) == "\"\\u2b50\\ufe0f\"");
1158 CHECK(json::accept(v));
1161 CHECK(json::sax_parse(v, &l));
1170 CHECK(json::parse(v).dump(-1, ' ', true) == "\"\\u2b50\\ufe0f\"");
1171 CHECK(json::accept(v));
1174 CHECK(json::sax_parse(v, &l));
1183 CHECK(json::parse(v).dump(-1, ' ', true) == "\"\\u2b50\\ufe0f\"");
1184 CHECK(json::accept(v));
1187 CHECK(json::sax_parse(v, &l));