Benoit Blanchon 11 лет назад
Родитель
Сommit
7cdf7b1769
1 измененных файлов с 14 добавлено и 3 удалено
  1. 14 3
      include/ArduinoJson/JsonValue.hpp

+ 14 - 3
include/ArduinoJson/JsonValue.hpp

@@ -56,11 +56,12 @@ class JsonValue {
   operator JsonArray &() const;
   operator JsonObject &() const;
 
-  JsonArray &asArray() { return static_cast<JsonArray &>(*this); };
-  JsonObject &asObject() { return static_cast<JsonObject &>(*this); };
+  const char *asString() const { return this->as<const char *>(); }
+  JsonArray &asArray() const { return this->as<JsonArray &>(); };
+  JsonObject &asObject() const { return this->as<JsonObject &>(); };
 
   template <typename T>
-  T as() {
+  T as() const {
     return static_cast<T>(*this);
   }
 
@@ -78,4 +79,14 @@ class JsonValue {
   Internals::JsonValueContent _content;
   static JsonValue _invalid;
 };
+
+template <typename T>
+inline bool operator==(const JsonValue &left, T right) {
+  return left.as<T>() == right;
+}
+
+template <typename T>
+inline bool operator==(T left, const JsonValue &right) {
+  return left == right.as<T>();
+}
 }