csvzall 0.4.0
CSV command-line tool and emerging C++ library
Loading...
Searching...
No Matches
json_path.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <simdjson.h>
4
5#include <string>
6#include <string_view>
7#include <vector>
8
10
12 enum class Kind {
13 Field,
14 Index,
16 };
17
19 std::string field;
20 std::size_t index = 0;
21};
22
23struct JsonPath {
24 std::vector<JsonPathStep> steps;
25};
26
27JsonPath ParseJsonPath(std::string_view text);
28
29std::vector<simdjson::dom::element> EvaluateJsonPath(
30 simdjson::dom::element root,
31 const JsonPath& path);
32
33std::vector<simdjson::dom::element> EvaluateJsonRowsPath(
34 simdjson::dom::element root,
35 const JsonPath& path);
36
37} // namespace csvzall::pipeline::common
std::string text
Definition json_extract.cpp:32
common::JsonPath path
Definition json_extract.cpp:348
Definition chart_spec.hpp:100
std::vector< simdjson::dom::element > EvaluateJsonRowsPath(simdjson::dom::element root, const JsonPath &path)
Definition json_path.cpp:249
JsonPath ParseJsonPath(std::string_view text)
Definition json_path.cpp:154
std::vector< simdjson::dom::element > EvaluateJsonPath(simdjson::dom::element root, const JsonPath &path)
Definition json_path.cpp:236
Definition json_path.hpp:11
std::size_t index
Definition json_path.hpp:20
std::string field
Definition json_path.hpp:19
Kind
Definition json_path.hpp:12
Kind kind
Definition json_path.hpp:18
Definition json_path.hpp:23
std::vector< JsonPathStep > steps
Definition json_path.hpp:24