diff options
author | antelder <antelder@13f79535-47bb-0310-9956-ffa450edef68> | 2011-07-21 08:39:06 +0000 |
---|---|---|
committer | antelder <antelder@13f79535-47bb-0310-9956-ffa450edef68> | 2011-07-21 08:39:06 +0000 |
commit | 80712068bcd239c65753f48da342fd94a6c0f0b2 (patch) | |
tree | 880fee254ff90b01c11be1398d801ab8e53bef75 /sca-java-2.x/branches/2.0-Beta3/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/jackson/JSON2OutputStream.java | |
parent | d314996e645ac8cd42c7571e97de09c16195c1ec (diff) |
Merge change in 1148839 to Streamline the json serialization into output stream to beta3
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1149074 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
-rw-r--r-- | sca-java-2.x/branches/2.0-Beta3/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/jackson/JSON2OutputStream.java | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/jackson/JSON2OutputStream.java b/sca-java-2.x/branches/2.0-Beta3/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/jackson/JSON2OutputStream.java index 920485a540..cb76f74baa 100644 --- a/sca-java-2.x/branches/2.0-Beta3/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/jackson/JSON2OutputStream.java +++ b/sca-java-2.x/branches/2.0-Beta3/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/jackson/JSON2OutputStream.java @@ -27,6 +27,9 @@ import org.apache.tuscany.sca.databinding.TransformationException; import org.apache.tuscany.sca.databinding.json.JSONDataBinding; import org.codehaus.jackson.JsonNode; import org.codehaus.jackson.JsonParser; +import org.codehaus.jackson.map.ObjectMapper; +import org.json.JSONArray; +import org.json.JSONObject; /** * @@ -50,10 +53,22 @@ public class JSON2OutputStream implements PushTransformer<Object, OutputStream> } else if (source instanceof JsonParser) { JacksonHelper.write((JsonParser)source, sink); } else { - try { - sink.write(source.toString().getBytes("UTF-8")); - } catch (Exception e) { - throw new TransformationException(e); + if (source instanceof String || source instanceof JSONObject + || source instanceof JSONArray + || source instanceof org.codehaus.jettison.json.JSONObject + || source instanceof org.codehaus.jettison.json.JSONArray) { + try { + sink.write(source.toString().getBytes("UTF-8")); + } catch (Exception e) { + throw new TransformationException(e); + } + } else { + ObjectMapper mapper = JacksonHelper.createObjectMapper(source.getClass()); + try { + mapper.writeValue(sink, source); + } catch (Throwable e) { + throw new TransformationException(e); + } } } } |