-
Notifications
You must be signed in to change notification settings - Fork 25
/
Copy pathJsonArrayBuilderEx.java
60 lines (40 loc) · 1.52 KB
/
JsonArrayBuilderEx.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package com.zetcode;
import javax.json.Json;
import javax.json.stream.JsonGenerator;
import java.io.StringWriter;
import java.time.LocalDate;
import java.util.HashMap;
import java.util.List;
public class JsonArrayBuilderEx {
public static void main(String[] args) {
var ab = Json.createArrayBuilder();
var users = createUsers();
users.forEach(user -> {
var ob = Json.createObjectBuilder();
ob.add("name", user.getName());
ob.add("occupation", user.getOccupation());
ob.add("born", user.getBorn().toString());
ab.add(ob);
});
var jsonArray = ab.build();
var config = new HashMap<String, Boolean>();
config.put(JsonGenerator.PRETTY_PRINTING, true);
var jwf = Json.createWriterFactory(config);
var sw = new StringWriter();
try (var jsonWriter = jwf.createWriter(sw)) {
jsonWriter.writeArray(jsonArray);
System.out.println(sw);
}
}
public static List<User> createUsers() {
var born1 = LocalDate.of(1992, 3, 2);
var u1 = new User("John Doe", "gardener", born1);
var born2 = LocalDate.of(1967, 11, 22);
var u2 = new User("Brian Flemming", "teacher", born2);
var born3 = LocalDate.of(1995, 4, 7);
var u3 = new User("Lucy Black", "accountant", born3);
var born4 = LocalDate.of(1972, 8, 30);
var u4 = new User("John Doe", "gardener", born4);
return List.of(u1, u2, u3, u4);
}
}