| 587 | } |
| 588 | |
| 589 | void as_a_stream_of_json_events() |
| 590 | { |
| 591 | auto options = csv::csv_options{} |
| 592 | .assume_header(true); |
| 593 | |
| 594 | csv::csv_string_cursor cursor(data, options); |
| 595 | |
| 596 | for (; !cursor.done(); cursor.next()) |
| 597 | { |
| 598 | const auto& event = cursor.current(); |
| 599 | switch (event.event_type()) |
| 600 | { |
| 601 | case jsoncons::staj_event_type::begin_array: |
| 602 | std::cout << event.event_type() << " " << "\n"; |
| 603 | break; |
| 604 | case jsoncons::staj_event_type::end_array: |
| 605 | std::cout << event.event_type() << " " << "\n"; |
| 606 | break; |
| 607 | case jsoncons::staj_event_type::begin_object: |
| 608 | std::cout << event.event_type() << " " << "\n"; |
| 609 | break; |
| 610 | case jsoncons::staj_event_type::end_object: |
| 611 | std::cout << event.event_type() << " " << "\n"; |
| 612 | break; |
| 613 | case jsoncons::staj_event_type::key: |
| 614 | // Or std::string_view, if supported |
| 615 | std::cout << event.event_type() << ": " << event.get<jsoncons::string_view>() << "\n"; |
| 616 | break; |
| 617 | case jsoncons::staj_event_type::string_value: |
| 618 | // Or std::string_view, if supported |
| 619 | std::cout << event.event_type() << ": " << event.get<jsoncons::string_view>() << "\n"; |
| 620 | break; |
| 621 | case jsoncons::staj_event_type::null_value: |
| 622 | std::cout << event.event_type() << "\n"; |
| 623 | break; |
| 624 | case jsoncons::staj_event_type::bool_value: |
| 625 | std::cout << event.event_type() << ": " << std::boolalpha << event.get<bool>() << "\n"; |
| 626 | break; |
| 627 | case jsoncons::staj_event_type::int64_value: |
| 628 | std::cout << event.event_type() << ": " << event.get<int64_t>() << "\n"; |
| 629 | break; |
| 630 | case jsoncons::staj_event_type::uint64_value: |
| 631 | std::cout << event.event_type() << ": " << event.get<uint64_t>() << "\n"; |
| 632 | break; |
| 633 | case jsoncons::staj_event_type::double_value: |
| 634 | std::cout << event.event_type() << ": " << event.get<double>() << "\n"; |
| 635 | break; |
| 636 | default: |
| 637 | std::cout << "Unhandled event type: " << event.event_type() << " " << "\n"; |
| 638 | break; |
| 639 | } |
| 640 | } |
| 641 | } |
| 642 | |
| 643 | void grouped_into_basic_json_records() |
| 644 | { |
no test coverage detected