Ver Fonte

Example: change the type of the json string from char* to char[] because it cause issue in memory protected environments.

Benoit Blanchon há 12 anos atrás
pai
commit
006fc13141
1 ficheiros alterados com 94 adições e 94 exclusões
  1. 94 94
      examples/JsonParserExample/JsonParserExample.ino

+ 94 - 94
examples/JsonParserExample/JsonParserExample.ino

@@ -1,94 +1,94 @@
-/*
-* malloc-free JSON parser for Arduino
-* Benoit Blanchon 2014 - MIT License
-*/
-
-#include <JsonParser.h>
-
-void ParseAnObject()
-{
-    char* json = "{\"Name\":\"Blanchon\",\"Skills\":[\"C\",\"C++\",\"C#\"],\"Age\":32,\"Online\":true}";
-
-    JsonParser<32> parser;
-
-    Serial.print("Parse ");
-    Serial.println(json);
-
-    JsonHashTable hashTable = parser.parseHashTable(json);
-
-    if (!hashTable.success())
-    {
-        Serial.println("JsonParser.parseHashTable() failed");
-        return;
-    }
-
-    char* name = hashTable.getString("Name");
-    Serial.print("name=");
-    Serial.println(name);
-
-    JsonArray skills = hashTable.getArray("Skills");
-    Serial.println("skills:");
-    for (int i = 0; i < skills.getLength(); i++)
-    {
-        char* value = skills.getString(i);
-        Serial.print(i);
-        Serial.print(" ");
-        Serial.println(value);
-    }
-
-    int age = hashTable.getLong("Age");
-    Serial.print("age=");
-    Serial.println(age);
-
-    bool online = hashTable.getBool("Online");
-    Serial.print("online=");
-    Serial.println(online);
-}
-
-void ParseAnArray()
-{
-    char* json = "[[1.2,3.4],[5.6,7.8]]";
-
-    JsonParser<32> parser;
-
-    Serial.print("Parse ");
-    Serial.println(json);
-
-    JsonArray array = parser.parseArray(json);
-
-    if (!array.success())
-    {
-        Serial.println("JsonParser.parseArray() failed");
-        return;
-    }
-
-    for (int i = 0; i < array.getLength(); i++)
-    {
-        Serial.println(i);
-
-        JsonArray innerArray = array.getArray(i);
-
-        for (int j = 0; j < innerArray.getLength(); j++)
-        {
-            double value = innerArray.getDouble(j);
-
-            Serial.print("  ");
-            Serial.print(j);
-            Serial.print("=");
-            Serial.println(value);
-        }
-    }
-}
-
-void setup()
-{
-    Serial.begin(9600);
-
-    ParseAnObject();
-    ParseAnArray();
-}
-
-void loop()
-{
-
-}
+/*
+* malloc-free JSON parser for Arduino
+* Benoit Blanchon 2014 - MIT License
+*/
+
+#include <JsonParser.h>
+
+void ParseAnObject()
+{
+    char[] json = "{\"Name\":\"Blanchon\",\"Skills\":[\"C\",\"C++\",\"C#\"],\"Age\":32,\"Online\":true}";
+
+    JsonParser<32> parser;
+
+    Serial.print("Parse ");
+    Serial.println(json);
+
+    JsonHashTable hashTable = parser.parseHashTable(json);
+
+    if (!hashTable.success())
+    {
+        Serial.println("JsonParser.parseHashTable() failed");
+        return;
+    }
+
+    char* name = hashTable.getString("Name");
+    Serial.print("name=");
+    Serial.println(name);
+
+    JsonArray skills = hashTable.getArray("Skills");
+    Serial.println("skills:");
+    for (int i = 0; i < skills.getLength(); i++)
+    {
+        char* value = skills.getString(i);
+        Serial.print(i);
+        Serial.print(" ");
+        Serial.println(value);
+    }
+
+    int age = hashTable.getLong("Age");
+    Serial.print("age=");
+    Serial.println(age);
+
+    bool online = hashTable.getBool("Online");
+    Serial.print("online=");
+    Serial.println(online);
+}
+
+void ParseAnArray()
+{
+    char[] json = "[[1.2,3.4],[5.6,7.8]]";
+
+    JsonParser<32> parser;
+
+    Serial.print("Parse ");
+    Serial.println(json);
+
+    JsonArray array = parser.parseArray(json);
+
+    if (!array.success())
+    {
+        Serial.println("JsonParser.parseArray() failed");
+        return;
+    }
+
+    for (int i = 0; i < array.getLength(); i++)
+    {
+        Serial.println(i);
+
+        JsonArray innerArray = array.getArray(i);
+
+        for (int j = 0; j < innerArray.getLength(); j++)
+        {
+            double value = innerArray.getDouble(j);
+
+            Serial.print("  ");
+            Serial.print(j);
+            Serial.print("=");
+            Serial.println(value);
+        }
+    }
+}
+
+void setup()
+{
+    Serial.begin(9600);
+
+    ParseAnObject();
+    ParseAnArray();
+}
+
+void loop()
+{
+
+}