Mercurial > dive4elements > framework
annotate artifacts-common/src/main/java/de/intevation/artifacts/common/utils/JSON.java @ 381:bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
artifacts/trunk@4270 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Wed, 18 Apr 2012 17:10:10 +0000 |
parents | |
children | 823752e3d392 |
rev | line source |
---|---|
381
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.artifacts.common.utils; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
2 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
3 import java.util.Map; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
4 import java.util.LinkedHashMap; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
5 import java.util.List; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
6 import java.util.ArrayList; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
7 import java.util.Iterator; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
8 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
9 import java.io.IOException; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
10 import java.io.PushbackInputStream; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
11 import java.io.InputStream; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
12 import java.io.PrintWriter; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
13 import java.io.ByteArrayInputStream; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
14 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
15 import java.nio.charset.Charset; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
16 import java.nio.charset.UnsupportedCharsetException; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
17 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
18 public final class JSON |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
19 { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
20 private JSON() { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
21 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
22 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
23 private static final boolean isDigit(int c) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
24 return c >= '0' && c <= '9'; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
25 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
26 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
27 public static final boolean isWhitespace(int c) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
28 return c == ' ' || c == '\n' || c == '\r' |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
29 || c == '\t' || c == '\f'; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
30 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
31 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
32 private static final void match(int c, int x) throws IOException { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
33 if (c != x) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
34 throw new IOException( |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
35 "Expecting '" + (char)c + "' found '" + (char)x + "'"); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
36 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
37 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
38 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
39 private static final int eof(InputStream in) |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
40 throws IOException |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
41 { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
42 int c = in.read(); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
43 if (c == -1) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
44 throw new IOException("EOF unexpected."); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
45 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
46 return c; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
47 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
48 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
49 private static final int whitespace(InputStream in) |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
50 throws IOException |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
51 { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
52 int c; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
53 while (isWhitespace(c = eof(in))); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
54 return c; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
55 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
56 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
57 private static final int parseHex(String hex) throws IOException { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
58 try { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
59 return Integer.parseInt(hex, 16); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
60 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
61 catch (NumberFormatException nfe) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
62 throw new IOException("'" + hex + "' is not a hex string."); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
63 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
64 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
65 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
66 public static final String jsonString(String string) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
67 StringBuilder sb = new StringBuilder(string.length()+2); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
68 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
69 sb.append('"'); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
70 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
71 for (int i = 0, N = string.length(); i < N; ++i) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
72 char c = string.charAt(i); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
73 switch (c) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
74 case '"': sb.append("\\\""); break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
75 case '\t': sb.append("\\t"); break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
76 case '\r': sb.append("\\r"); break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
77 case '\n': sb.append("\\n"); break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
78 case '\b': sb.append("\\b"); break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
79 case '\f': sb.append("\\f"); break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
80 default: |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
81 if (c >= 128) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
82 sb.append("\\u"); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
83 String hex = Integer.toHexString((int)c); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
84 for (int j = 4-hex.length(); j > 0; --j) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
85 sb.append('0'); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
86 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
87 sb.append(hex); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
88 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
89 else { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
90 sb.append(c); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
91 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
92 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
93 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
94 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
95 sb.append('"'); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
96 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
97 return sb.toString(); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
98 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
99 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
100 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
101 public static void write(PrintWriter out, Map<String, Object> map) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
102 writeObject(out, map); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
103 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
104 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
105 private static void writeValue(PrintWriter out, Object value) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
106 if (value instanceof Map) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
107 writeObject(out, (Map)value); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
108 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
109 else if (value instanceof List) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
110 writeList(out, (List)value); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
111 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
112 else if (value instanceof Number) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
113 out.print(value); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
114 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
115 else if (value instanceof Boolean) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
116 out.print(((Boolean)value) ? "true" : "false"); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
117 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
118 else if (value == null) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
119 out.print("null"); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
120 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
121 else { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
122 out.print(jsonString(value.toString())); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
123 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
124 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
125 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
126 private static void writeObject(PrintWriter out, Map map) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
127 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
128 out.print('{'); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
129 Iterator iter = map.entrySet().iterator(); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
130 while (iter.hasNext()) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
131 Map.Entry entry = (Map.Entry)iter.next(); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
132 out.print(jsonString(entry.getKey().toString())); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
133 out.print(':'); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
134 writeValue(out, entry.getValue()); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
135 if (iter.hasNext()) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
136 out.print(','); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
137 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
138 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
139 out.print('}'); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
140 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
141 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
142 private static void writeList(PrintWriter out, List list) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
143 out.print('['); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
144 Iterator iter = list.iterator(); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
145 while (iter.hasNext()) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
146 writeValue(out, iter.next()); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
147 if (iter.hasNext()) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
148 out.print(','); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
149 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
150 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
151 out.print(']'); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
152 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
153 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
154 public static Map<String, Object> parse(String in) |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
155 throws IOException |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
156 { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
157 return parse(asInputStream(in)); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
158 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
159 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
160 private static InputStream asInputStream(String in) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
161 byte [] bytes; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
162 try { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
163 bytes = in.getBytes(Charset.forName("US-ASCII")); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
164 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
165 catch (UnsupportedCharsetException uce) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
166 // Should not happen. |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
167 bytes = in.getBytes(); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
168 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
169 return new ByteArrayInputStream(bytes); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
170 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
171 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
172 public static Map<String, Object> parse(InputStream in) |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
173 throws IOException |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
174 { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
175 return parseObject(new PushbackInputStream(in, 1)); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
176 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
177 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
178 public static Map<String, Object> parse(PushbackInputStream in) |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
179 throws IOException |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
180 { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
181 return parseObject(in); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
182 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
183 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
184 private static final String parseString( |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
185 PushbackInputStream in |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
186 ) |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
187 throws IOException |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
188 { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
189 StringBuilder sb = new StringBuilder(); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
190 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
191 int mode = 0; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
192 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
193 char [] hex = new char[4]; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
194 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
195 match('"', eof(in)); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
196 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
197 OUT: for (int c = eof(in);; c = eof(in)) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
198 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
199 switch (mode) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
200 case 0: |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
201 if (c == '"') { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
202 break OUT; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
203 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
204 if (c == '\\') { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
205 mode = 1; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
206 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
207 else { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
208 sb.append((char)c); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
209 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
210 break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
211 case 1: |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
212 switch (c) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
213 case 'u': |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
214 mode = 2; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
215 continue; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
216 case 'b': |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
217 sb.append('\b'); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
218 break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
219 case 'f': |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
220 sb.append('\f'); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
221 break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
222 case 'n': |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
223 sb.append('\n'); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
224 break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
225 case 'r': |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
226 sb.append('\r'); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
227 break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
228 case 't': |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
229 sb.append('\t'); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
230 break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
231 default: |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
232 sb.append((char)c); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
233 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
234 mode = 0; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
235 break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
236 case 2: |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
237 hex[0] = (char)c; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
238 mode = 3; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
239 break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
240 case 3: |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
241 hex[1] = (char)c; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
242 mode = 4; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
243 break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
244 case 4: |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
245 hex[2] = (char)c; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
246 mode = 5; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
247 break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
248 case 5: |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
249 hex[3] = (char)c; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
250 sb.append((char)parseHex(new String(hex))); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
251 mode = 0; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
252 break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
253 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
254 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
255 return sb.toString(); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
256 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
257 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
258 private static final Boolean parseTrue(InputStream in) |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
259 throws IOException |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
260 { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
261 match('t', eof(in)); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
262 match('r', eof(in)); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
263 match('u', eof(in)); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
264 match('e', eof(in)); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
265 return Boolean.TRUE; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
266 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
267 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
268 private static final Boolean parseFalse(InputStream in) |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
269 throws IOException |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
270 { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
271 match('f', eof(in)); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
272 match('a', eof(in)); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
273 match('l', eof(in)); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
274 match('s', eof(in)); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
275 match('e', eof(in)); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
276 return Boolean.FALSE; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
277 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
278 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
279 private static final Object parseNull(InputStream in) |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
280 throws IOException |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
281 { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
282 match('n', eof(in)); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
283 match('u', eof(in)); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
284 match('l', eof(in)); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
285 match('l', eof(in)); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
286 return null; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
287 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
288 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
289 private static final Number parseNumber(PushbackInputStream in) |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
290 throws IOException |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
291 { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
292 StringBuilder sb = new StringBuilder(); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
293 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
294 boolean isInteger = true; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
295 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
296 int c; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
297 OUT: for (;;) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
298 switch (c = eof(in)) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
299 case '0': case '1': case '2': case '3': case '4': |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
300 case '5': case '6': case '7': case '8': case '9': |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
301 case '-': case '+': |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
302 sb.append((char)c); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
303 break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
304 case '.': case 'e': case 'E': |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
305 isInteger = false; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
306 sb.append((char)c); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
307 break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
308 default: |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
309 in.unread(c); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
310 break OUT; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
311 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
312 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
313 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
314 try { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
315 if (isInteger) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
316 return sb.length() > 9 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
317 ? (Number)Long .valueOf(sb.toString()) |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
318 : (Number)Integer.valueOf(sb.toString()); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
319 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
320 return (Number)Double.valueOf(sb.toString()); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
321 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
322 catch (NumberFormatException nfe) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
323 throw new IOException("Not a number '" + sb + "'"); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
324 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
325 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
326 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
327 private static List<Object> parseList(PushbackInputStream in) |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
328 throws IOException |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
329 { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
330 List<Object> list = new ArrayList<Object>(); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
331 match('[', whitespace(in)); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
332 int c = whitespace(in); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
333 if (c == ']') { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
334 return list; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
335 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
336 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
337 for (;; c = whitespace(in)) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
338 Object value; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
339 in.unread(c); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
340 switch (c) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
341 case '{': |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
342 value = parseObject(in); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
343 break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
344 case '[': |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
345 value = parseList(in); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
346 break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
347 case '"': |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
348 value = parseString(in); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
349 break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
350 case 't': |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
351 value = parseTrue(in); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
352 break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
353 case 'f': |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
354 value = parseFalse(in); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
355 break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
356 case 'n': |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
357 value = parseNull(in); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
358 break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
359 default: |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
360 value = parseNumber(in); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
361 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
362 list.add(value); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
363 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
364 if ((c = whitespace(in)) == ']') break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
365 match(',', c); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
366 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
367 return list; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
368 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
369 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
370 private static void parsePair( |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
371 PushbackInputStream in, |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
372 Map<String, Object> pairs |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
373 ) |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
374 throws IOException |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
375 { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
376 in.unread(whitespace(in)); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
377 String string = parseString(in); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
378 match(':', whitespace(in)); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
379 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
380 Object value; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
381 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
382 int c = whitespace(in); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
383 in.unread(c); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
384 switch (c) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
385 case '{': |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
386 value = parseObject(in); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
387 break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
388 case '[': |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
389 value = parseList(in); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
390 break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
391 case '"': |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
392 value = parseString(in); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
393 break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
394 case 't': |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
395 value = parseTrue(in); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
396 break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
397 case 'f': |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
398 value = parseFalse(in); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
399 break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
400 case 'n': |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
401 value = parseNull(in); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
402 break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
403 default: |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
404 value = parseNumber(in); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
405 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
406 pairs.put(string, value); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
407 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
408 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
409 private static Map<String, Object> parseObject(PushbackInputStream in) |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
410 throws IOException |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
411 { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
412 Map<String, Object> pairs = new LinkedHashMap<String, Object>(); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
413 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
414 int c = whitespace(in); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
415 match('{', c); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
416 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
417 if ((c = whitespace(in)) == '}') { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
418 return pairs; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
419 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
420 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
421 in.unread(c); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
422 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
423 for (;;) { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
424 parsePair(in, pairs); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
425 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
426 if ((c = whitespace(in)) == '}') { |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
427 break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
428 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
429 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
430 if (c == '}') break; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
431 match(',', c); |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
432 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
433 |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
434 return pairs; |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
435 } |
bed51de8ae58
Added JSON parser from Artefact Server NG to bridge from JSON to XML speaking services.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
436 } |