# HG changeset patch # User Sascha L. Teichmann # Date 1335524198 0 # Node ID 823752e3d392cc115e6c866166b52ee50a700e46 # Parent b076c9e9fdfdc7cedb0af47cd70fbff51ca61141 Fixed building XML documents from JSON strings. artifacts/trunk@4321 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r b076c9e9fdfd -r 823752e3d392 ChangeLog --- a/ChangeLog Wed Apr 25 07:47:56 2012 +0000 +++ b/ChangeLog Fri Apr 27 10:56:38 2012 +0000 @@ -1,3 +1,11 @@ +2012-04-27 Sascha L. Teichmann + + * artifacts-common/src/main/java/de/intevation/artifacts/common/utils/JSON.java: + Added toJSONString() method. + + * artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java: + Fixed building XML documents from JSON strings. + 2012-04-25 Raimund Renkert * artifacts-common/src/main/java/de/intevation/artifacts/common/utils/FileTools.java: diff -r b076c9e9fdfd -r 823752e3d392 artifacts-common/src/main/java/de/intevation/artifacts/common/utils/JSON.java --- a/artifacts-common/src/main/java/de/intevation/artifacts/common/utils/JSON.java Wed Apr 25 07:47:56 2012 +0000 +++ b/artifacts-common/src/main/java/de/intevation/artifacts/common/utils/JSON.java Fri Apr 27 10:56:38 2012 +0000 @@ -11,6 +11,7 @@ import java.io.InputStream; import java.io.PrintWriter; import java.io.ByteArrayInputStream; +import java.io.StringWriter; import java.nio.charset.Charset; import java.nio.charset.UnsupportedCharsetException; @@ -97,6 +98,14 @@ return sb.toString(); } + public static String toJSONString(Map map) { + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + write(pw, map); + pw.flush(); + return sw.toString(); + } + public static void write(PrintWriter out, Map map) { writeObject(out, map); diff -r b076c9e9fdfd -r 823752e3d392 artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java --- a/artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java Wed Apr 25 07:47:56 2012 +0000 +++ b/artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java Fri Apr 27 10:56:38 2012 +0000 @@ -481,6 +481,14 @@ element.setAttribute(entry.getKey(), entry.getValue()); } } + + void finish(Element element) { + setAttributes(element); + for (Node child: children) { + element.appendChild(child); + } + } + void add(Node node) { children.add(node); } @@ -500,13 +508,13 @@ Element element = document.createElement("map"); BuildResult subResult = recursiveBuild( (Map)entry, document); - subResult.setAttributes(element); + subResult.finish(element); result.add(element); } else if (entry instanceof List) { Element element = document.createElement("list"); BuildResult subResult = recursiveBuild((List)entry, document); - subResult.setAttributes(element); + subResult.finish(element); result.add(element); } else { @@ -532,13 +540,13 @@ Element element = document.createElement(entry.getKey()); BuildResult subResult = recursiveBuild( (Map)value, document); - subResult.setAttributes(element); + subResult.finish(element); result.add(element); } else if (value instanceof List) { Element element = document.createElement(entry.getKey()); BuildResult subResult = recursiveBuild((List)value, document); - subResult.setAttributes(element); + subResult.finish(element); result.add(element); } else {