Skip to content

Commit b204db8

Browse files
committed
Revise examples based on feedback
1 parent 475c064 commit b204db8

File tree

3 files changed

+290
-116
lines changed

3 files changed

+290
-116
lines changed

examples/JSONArray/JSONArray.ino

Lines changed: 73 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,104 @@
1+
/*
2+
JSON Array
3+
4+
This sketch demonstrates how to use various features
5+
of the JSON library, in particular for JSON arrays.
6+
7+
This example code is in the public domain.
8+
*/
9+
110
#include <JSON.h>
211

312
const char input[] = "[true, 42, \"apple\"]";
413

5-
var array;
6-
714
void setup() {
815
Serial.begin(9600);
916
while (!Serial);
1017

11-
array = JSON.parse(input);
18+
demoParse();
19+
20+
demoCreation();
21+
}
22+
23+
void loop() {
24+
}
25+
26+
void demoParse() {
27+
Serial.println("parse");
28+
Serial.println("=====");
29+
30+
var myArray = JSON.parse(input);
1231

13-
Serial.print("array length = ");
14-
Serial.println(array.length());
32+
// typeof(jsonVar) can be used to get the type of the var
33+
if (typeof(myArray) == "undefined") {
34+
Serial.println("Parsing input failed!");
35+
return;
36+
}
1537

16-
Serial.print("typeof(array[0]) = ");
17-
Serial.println(typeof(array[0]));
38+
Serial.print("typeof(myArray) = ");
39+
Serial.println(typeof(myArray)); // prints: array
1840

19-
Serial.print("array[0] = ");
20-
Serial.println(array[0]);
41+
// myArray.length() can be used to get the length of the array
42+
Serial.print("myArray.length() = ");
43+
Serial.println(myArray.length());
44+
Serial.println();
2145

22-
Serial.print("array[1] = ");
23-
Serial.println((int) array[1]);
46+
Serial.print("typeof(myArray[0]) = ");
47+
Serial.println(typeof(myArray[0]));
2448

25-
Serial.print("array[1] = ");
26-
Serial.println((double) array[1]);
49+
Serial.print("myArray[0] = ");
50+
Serial.println(myArray[0]);
51+
Serial.println();
2752

28-
Serial.print("array[2] = ");
29-
Serial.println((const char*) array[2]);
53+
Serial.print("myArray[1] = ");
54+
Serial.println((int) myArray[1]);
55+
Serial.println();
3056

31-
Serial.println(JSON.stringify(array));
57+
Serial.print("myArray[2] = ");
58+
Serial.println((const char*) myArray[2]);
59+
Serial.println();
60+
61+
Serial.println();
62+
}
3263

33-
array[0] = false;
34-
array[1] = 4242;
35-
array[2] = "orange";
36-
array[3] = "world";
37-
array[4] = true;
38-
array[5] = 42;
64+
void demoCreation() {
65+
Serial.println("creation");
66+
Serial.println("========");
3967

40-
array[10] = 11;
68+
var myArray;
69+
70+
myArray[0] = false;
71+
myArray[1] = 4242.5;
72+
myArray[2] = "orange";
73+
myArray[3] = "world";
74+
myArray[4] = true;
75+
myArray[5] = 42;
4176

42-
Serial.print("array length = ");
43-
Serial.println(array.length());
77+
Serial.print("myArray.length() = ");
78+
Serial.println(myArray.length());
4479

45-
Serial.println(array);
80+
// JSON.stringify(myVar) can be used to convert the json var to a String
81+
String jsonString = JSON.stringify(myArray);
4682

47-
for (int i = 0; i < array.length(); i++) {
48-
var value = array[i];
83+
Serial.print("JSON.stringify(myArray) = ");
84+
Serial.println(jsonString);
85+
Serial.println();
4986

50-
Serial.print("typeof(array[");
87+
for (int i = 0; i < myArray.length(); i++) {
88+
var value = myArray[i];
89+
90+
Serial.print("typeof(myArray[");
5191
Serial.print(i);
5292
Serial.print("]) = ");
5393
Serial.println(typeof(value));
5494

55-
Serial.print("array[");
95+
Serial.print("myArray[");
5696
Serial.print(i);
5797
Serial.print("] = ");
5898
Serial.println(value);
99+
100+
Serial.println();
59101
}
60-
}
61102

62-
void loop() {
103+
Serial.println();
63104
}
Lines changed: 122 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,102 +1,165 @@
1+
/*
2+
JSON Kitchen Sink
3+
4+
This sketch demonstrates how to use various features
5+
of the JSON library.
6+
7+
This example code is in the public domain.
8+
*/
9+
110
#include <JSON.h>
211

312
void setup() {
413
Serial.begin(9600);
514
while (!Serial);
615

716
// boolean
8-
var b = true;
17+
booleanDemo();
918

10-
Serial.print("typeof(b) = ");
11-
Serial.println(typeof(b));
19+
intDemo();
1220

13-
Serial.print("b = ");
14-
Serial.println(b);
21+
doubleDemo();
1522

16-
b = false;
23+
stringDemo();
1724

18-
// integer
19-
Serial.print("b = ");
20-
Serial.println(b);
25+
arrayDemo();
2126

22-
var i = 42;
27+
objectDemo();
28+
}
2329

24-
Serial.print("typeof(i) = ");
25-
Serial.println(typeof(i));
30+
void loop() {
31+
}
2632

27-
Serial.print("i = ");
28-
Serial.println(i);
33+
void booleanDemo() {
34+
Serial.println("boolean");
35+
Serial.println("=======");
2936

30-
i = 4242;
37+
var myBoolean = true;
3138

32-
Serial.print("i = ");
33-
Serial.println(i);
39+
Serial.print("typeof(myBoolean) = ");
40+
Serial.println(typeof(myBoolean)); // prints: boolean
3441

35-
// double
36-
var d = 42.42;
42+
Serial.print("myBoolean = ");
43+
Serial.println(myBoolean); // prints: true
3744

38-
Serial.print("typeof(d) = ");
39-
Serial.println(typeof(d));
45+
myBoolean = false;
4046

41-
Serial.print("d = ");
42-
Serial.println(d);
47+
Serial.print("myBoolean = ");
48+
Serial.println((boolean) myBoolean); // prints: 0
4349

44-
d = 4242.4242;
50+
Serial.println();
51+
}
4552

46-
Serial.print("d = ");
47-
Serial.println(d);
53+
void intDemo() {
54+
Serial.println("int");
55+
Serial.println("===");
4856

49-
// string
50-
var s = "Hello World!";
57+
var myInt = 42;
5158

52-
Serial.print("typeof(s) = ");
53-
Serial.println(typeof(s));
59+
Serial.print("typeof(myInt) = ");
60+
Serial.println(typeof(myInt)); // prints: number
5461

55-
Serial.print("s = ");
56-
Serial.println(s);
62+
Serial.print("myInt = ");
63+
Serial.println(myInt); // prints: 42
5764

58-
s = ":)";
65+
myInt = 4242;
5966

60-
Serial.print("s = ");
61-
Serial.println(s);
67+
Serial.print("myInt = ");
68+
Serial.println((int) myInt); // prints: 4242
6269

63-
// array
64-
var array;
70+
Serial.println();
71+
}
6572

66-
array[0] = 42;
73+
void doubleDemo() {
74+
Serial.println("double");
75+
Serial.println("======");
6776

68-
Serial.print("typeof(array) = ");
69-
Serial.println(typeof(array));
77+
var myDouble = 42.5;
7078

71-
Serial.println((int)array[0] == 42);
79+
Serial.print("typeof(myDouble) = ");
80+
Serial.println(typeof(myDouble)); // prints: number
7281

73-
Serial.print("array = ");
74-
Serial.println(array);
82+
Serial.print("myDouble = ");
83+
Serial.println(myDouble); // prints: 42.5
7584

76-
array[1] = 42.42;
85+
myDouble = 4242.4242;
7786

78-
Serial.print("array = ");
79-
Serial.println(array);
87+
Serial.print("myDouble = ");
88+
Serial.println((double) myDouble, 4); // prints: 4242.4242
8089

81-
// object
82-
var object;
90+
Serial.println();
91+
}
92+
93+
void stringDemo() {
94+
Serial.println("string");
95+
Serial.println("======");
8396

84-
object["foo"] = "bar";
97+
var myString = "Hello World!";
8598

86-
Serial.print("typeof(object) = ");
87-
Serial.println(typeof(object));
99+
Serial.print("typeof(myString) = ");
100+
Serial.println(typeof(myString)); // prints: string
88101

89-
Serial.print("object keys = ");
90-
Serial.println(object.keys());
102+
Serial.print("myString = ");
103+
Serial.println(myString); // prints: Hello World!
91104

92-
Serial.print("object = ");
93-
Serial.println(object);
105+
myString = ":)";
94106

95-
object["blah"]["abc"] = 42;
107+
Serial.print("myString = ");
108+
Serial.println((const char*) myString); // prints: :)
96109

97-
Serial.print("object = ");
98-
Serial.println(object);
110+
Serial.println();
99111
}
100112

101-
void loop() {
113+
void arrayDemo() {
114+
Serial.println("array");
115+
Serial.println("=====");
116+
117+
var myArray;
118+
119+
myArray[0] = 42;
120+
121+
Serial.print("typeof(myArray) = ");
122+
Serial.println(typeof(myArray)); // prints: array
123+
124+
Serial.print("myArray = ");
125+
Serial.println(myArray); // prints: [42]
126+
127+
Serial.print("myArray[0] = ");
128+
Serial.println((int)myArray[0]); // prints: 42
129+
130+
myArray[1] = 42.5;
131+
132+
Serial.print("myArray = ");
133+
Serial.println(myArray); // prints: [42,42.5]
134+
135+
Serial.print("myArray[1] = ");
136+
Serial.println((double)myArray[1]); // prints: 42.50
137+
138+
Serial.println();
139+
}
140+
141+
void objectDemo() {
142+
Serial.println("object");
143+
Serial.println("======");
144+
145+
var myObject;
146+
147+
myObject["foo"] = "bar";
148+
149+
Serial.print("typeof(myObject) = ");
150+
Serial.println(typeof(myObject)); // prints: object
151+
152+
Serial.print("myObject.keys() = ");
153+
Serial.println(myObject.keys()); // prints: ["foo"]
154+
155+
Serial.print("myObject = ");
156+
Serial.println(myObject); // prints: {"foo":"bar"}
157+
158+
myObject["blah"]["abc"] = 42;
159+
160+
Serial.print("myObject.keys() = ");
161+
Serial.println(myObject.keys()); // prints: ["foo","blah"]
162+
163+
Serial.print("myObject = ");
164+
Serial.println(myObject); // prints: {"foo":"bar","blah":{"abc":42}}
102165
}

0 commit comments

Comments
 (0)