-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJsonHelper.java
173 lines (133 loc) · 3.77 KB
/
JsonHelper.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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
/**
* Created by Marcel Wlotzka on 22.02.16.
*/
public class JsonHelper {
private JsonElement element;
public JsonHelper() {
this.element = null;
}
public JsonHelper(JsonElement element) {
this.element = element;
}
public JsonHelper(String content) {
try {
element = new JsonParser().parse(content);
} catch (Exception e) {
element = null;
}
}
public JsonHelper get(String key) {
if (element == null) {
return this;
}
if (element.isJsonObject() && element.getAsJsonObject().has(key)) {
return new JsonHelper(element.getAsJsonObject().get(key));
}
return new JsonHelper();
}
public int size() {
if (element == null) {
return 0;
}
if (element.isJsonArray()) {
return element.getAsJsonArray().size();
}
return 0;
}
public JsonHelper at(int index) {
if (element == null) {
return this;
}
if (element.isJsonArray() && index < element.getAsJsonArray().size() && index >= 0) {
return new JsonHelper(element.getAsJsonArray().get(index));
}
return new JsonHelper();
}
public String stringValue() {
if (element == null) {
return null;
}
if (element.isJsonPrimitive() && element.getAsJsonPrimitive().isString()) {
return element.getAsJsonPrimitive().getAsString();
}
return null;
}
public Integer intValue() {
if (element == null) {
return null;
}
if (element.isJsonPrimitive() && element.getAsJsonPrimitive().isNumber()) {
return element.getAsJsonPrimitive().getAsInt();
}
return null;
}
public Long longValue() {
if (element == null) {
return null;
}
if (element.isJsonPrimitive() && element.getAsJsonPrimitive().isNumber()) {
return element.getAsJsonPrimitive().getAsLong();
}
return null;
}
public Float floatValue() {
if (element == null) {
return null;
}
if (element.isJsonPrimitive() && element.getAsJsonPrimitive().isNumber()) {
return element.getAsJsonPrimitive().getAsFloat();
}
return null;
}
public Double doubleValue() {
if (element == null) {
return null;
}
if (element.isJsonPrimitive() && element.getAsJsonPrimitive().isNumber()) {
return element.getAsJsonPrimitive().getAsDouble();
}
return null;
}
public Boolean boolValue() {
if (element == null) {
return null;
}
if (element.isJsonPrimitive() && element.getAsJsonPrimitive().isBoolean()) {
return element.getAsJsonPrimitive().getAsBoolean();
}
return null;
}
public JsonElement jsonElement() {
return element;
}
public JsonObject jsonObject() {
if (element == null) {
return null;
}
if (element.isJsonObject()) {
return element.getAsJsonObject();
}
return null;
}
public JsonArray jsonArray() {
if (element == null) {
return null;
}
if (element.isJsonArray()) {
return element.getAsJsonArray();
}
return null;
}
public String stringify() {
if (element == null) {
return null;
}
Gson gson = new Gson();
return gson.toJson(element);
}
}