#include <simdjson.h>
using namespace std;
using namespace simdjson;
int main() {
padded_string json = R"({"foo": 1,"bar": 2,"baz":[1,5,7]})"_padded;
dom::parser parser;
dom::element el;
dom::array arr;
dom::object obj;
auto error = parser.parse(json).get(el);
if (error) { cerr << error << endl; return -1; }
cout << el["foo"] << endl;
cout << el.at_pointer("/baz/1") << endl;
if (error = el["baz"].get(arr)) { cerr << error << endl; return -1;}
cout << arr.size() << "\t" << arr.at(1) << endl;
if (error = parser.parse(json).get(obj)) { cerr << error << endl; return -1;}
for (dom::key_value_pair field : obj) {cout << field.key << " = " << field.value << endl;}
auto json2 = R"({ "foo": 1 }
{ "foo": 2 }
{ "foo": 3 })"_padded;
dom::document_stream docs = parser.parse_many(json2);
for (dom::element doc : docs) {
cout << doc["foo"] << endl;
}
return 0;
}