FastLED 3.9.15
Loading...
Searching...
No Matches

◆ as_array() [1/2]

fl::optional< JsonArray > fl::JsonValue::as_array ( )
inline

Definition at line 963 of file json.h.

965 {
966 auto ptr = data.ptr<JsonArray>();
967 if (ptr) return fl::optional<JsonArray>(*ptr);
968
969 // Handle specialized array types by converting them to regular JsonArray
970 if (data.is<fl::vector<int16_t>>()) {
971 auto audioPtr = data.ptr<fl::vector<int16_t>>();
972 JsonArray result;
973 for (const auto& item : *audioPtr) {
974 result.push_back(fl::make_shared<JsonValue>(static_cast<int64_t>(item)));
975 }
976 return fl::optional<JsonArray>(result);
977 }
978
979 if (data.is<fl::vector<uint8_t>>()) {
980 auto bytePtr = data.ptr<fl::vector<uint8_t>>();
981 JsonArray result;
982 for (const auto& item : *bytePtr) {
983 result.push_back(fl::make_shared<JsonValue>(static_cast<int64_t>(item)));
984 }
985 return fl::optional<JsonArray>(result);
986 }
987
988 if (data.is<fl::vector<float>>()) {
989 auto floatPtr = data.ptr<fl::vector<float>>();
990 JsonArray result;
991 for (const auto& item : *floatPtr) {
992 result.push_back(fl::make_shared<JsonValue>(item)); // Use float directly
993 }
994 return fl::optional<JsonArray>(result);
995 }
996
void push_back(const T &value)
Definition vector.h:552
Optional< T > optional
Definition optional.h:14
shared_ptr< T > make_shared(Args &&... args)
Definition shared_ptr.h:348
fl::vector< fl::shared_ptr< JsonValue > > JsonArray
Definition json.h:170
HeapVector< T, Allocator > vector
Definition vector.h:1214
variant_t data
Definition json.h:678

Referenced by operator[]().

+ Here is the caller graph for this function: