MCPcopy Create free account
hub / github.com/bblanchon/ArduinoJson / JsonArrayConst

Class JsonArrayConst

src/ArduinoJson/Array/JsonArrayConst.hpp:17–108  ·  view source on GitHub ↗

A read-only reference to an array in a JsonDocument https://arduinojson.org/v7/api/jsonarrayconst/

Source from the content-addressed store, hash-verified

15// A read-only reference to an array in a JsonDocument
16// https://arduinojson.org/v7/api/jsonarrayconst/
17class JsonArrayConst : public detail::VariantOperators<JsonArrayConst> {
18 friend class JsonArray;
19 friend class detail::VariantAttorney;
20
21 public:
22 using iterator = JsonArrayConstIterator;
23
24 // Returns an iterator to the first element of the array.
25 // https://arduinojson.org/v7/api/jsonarrayconst/begin/
26 iterator begin() const {
27 if (!data_)
28 return iterator();
29 return iterator(data_->createIterator(resources_), resources_);
30 }
31
32 // Returns an iterator to the element following the last element of the array.
33 // https://arduinojson.org/v7/api/jsonarrayconst/end/
34 iterator end() const {
35 return iterator();
36 }
37
38 // Creates an unbound reference.
39 JsonArrayConst() : data_(0), resources_(0) {}
40
41 // INTERNAL USE ONLY
42 JsonArrayConst(const detail::ArrayData* data,
43 const detail::ResourceManager* resources)
44 : data_(data), resources_(resources) {}
45
46 // Returns the element at the specified index.
47 // https://arduinojson.org/v7/api/jsonarrayconst/subscript/
48 template <typename T,
49 detail::enable_if_t<detail::is_integral<T>::value, int> = 0>
50 JsonVariantConst operator[](T index) const {
51 return JsonVariantConst(
52 detail::ArrayData::getElement(data_, size_t(index), resources_),
53 resources_);
54 }
55
56 // Returns the element at the specified index.
57 // https://arduinojson.org/v7/api/jsonarrayconst/subscript/
58 template <typename TVariant,
59 detail::enable_if_t<detail::IsVariant<TVariant>::value, int> = 0>
60 JsonVariantConst operator[](const TVariant& variant) const {
61 if (variant.template is<size_t>())
62 return operator[](variant.template as<size_t>());
63 else
64 return JsonVariantConst();
65 }
66
67 operator JsonVariantConst() const {
68 return JsonVariantConst(getData(), resources_);
69 }
70
71 // Returns true if the reference is unbound.
72 // https://arduinojson.org/v7/api/jsonarrayconst/isnull/
73 bool isNull() const {
74 return data_ == 0;

Callers 3

fromJsonMethod · 0.85
visitMethod · 0.85
JsonArray.hppFile · 0.85

Calls 2

JsonVariantConstFunction · 0.85
getDataFunction · 0.70

Tested by

no test coverage detected