-
Notifications
You must be signed in to change notification settings - Fork 0
/
JSONObject.java
69 lines (61 loc) · 1.65 KB
/
JSONObject.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
package Yelp;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class JSONObject implements JSONValue {
private Map<String, JSONValue> object = new HashMap<String, JSONValue>();
/**
*
*/
public JSONObject() {
}
/**
* @param key
* @param value
*/
public void put(final String key, JSONValue value) {
if(value == null) {
value = JSONNull.NULL;
}
object.put(key, value);
}
/**
* @return the object
*/
public Map<String, JSONValue> getValue() {
return object;
}
public String toJSON() {
StringBuffer buffer = new StringBuffer();
buffer.append("{");
Set<String> keys = object.keySet();
Iterator<String> it = keys.iterator();
while(it.hasNext()) {
String key = (String)it.next();
buffer.append("\"");
buffer.append(key);
buffer.append("\":");
buffer.append(object.get(key).toJSON());
if(it.hasNext()) {
buffer.append(",\n");
}
}
buffer.append("}");
return buffer.toString();
}
public void flattenTo(Map<String, String> map, String prefix) {
Set<String> keys = object.keySet();
Iterator<String> it = keys.iterator();
while(it.hasNext()) {
String key = (String)it.next();
String new_prefix;
if (prefix.length() > 0) {
new_prefix = prefix + "." + key;
} else {
new_prefix = key;
}
object.get(key).flattenTo(map, new_prefix);
}
}
}