Author: awiner
Date: Thu Mar 5 01:46:05 2009
New Revision: 750280
URL: http://svn.apache.org/viewvc?rev=750280&view=rev
Log:
SHINDIG-965: JsonSerializer does not handle POJOs in JSONArrays correctly
Modified:
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/JsonSerializer.java
incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/common/JsonSerializerTest.java
Modified:
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/JsonSerializer.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/JsonSerializer.java?rev=750280&r1=750279&r2=750280&view=diff
==============================================================================
---
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/JsonSerializer.java
(original)
+++
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/JsonSerializer.java
Thu Mar 5 01:46:05 2009
@@ -163,7 +163,7 @@
} else if (value instanceof JSONObject) {
appendJsonObject(buf, (JSONObject) value);
} else if (value instanceof JSONArray) {
- buf.append(value.toString());
+ appendJsonArray(buf, (JSONArray) value);
} else if (value instanceof Map) {
appendMap(buf, (Map<String, Object>) value);
} else if (value instanceof Collection) {
Modified:
incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/common/JsonSerializerTest.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/common/JsonSerializerTest.java?rev=750280&r1=750279&r2=750280&view=diff
==============================================================================
---
incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/common/JsonSerializerTest.java
(original)
+++
incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/common/JsonSerializerTest.java
Thu Mar 5 01:46:05 2009
@@ -44,6 +44,8 @@
*/
public class JsonSerializerTest {
+ private static final String JSON_POJO_AS_JSON =
"{string:'string-value',integer:100,'simple!':3}";
+
@Test
public void serializeSimpleJsonObject() throws Exception {
String json = "{foo:'bar'}";
@@ -78,6 +80,15 @@
}
@Test
+ public void serializeJsonObjectWithComplexArray() throws Exception {
+ JSONArray array = new JSONArray();
+ array.put(new JsonPojo());
+ JSONObject object = new JSONObject();
+ object.put("array", array);
+ assertJsonEquals("{'array': [" + JSON_POJO_AS_JSON + "]}",
JsonSerializer.serialize(object));
+ }
+
+ @Test
public void serializePrimitives() throws Exception {
assertEquals("null", JsonSerializer.serialize((Object) null));
assertEquals("\"hello\"", JsonSerializer.serialize("hello"));
@@ -118,7 +129,7 @@
public void serializePojo() throws Exception {
JsonPojo pojo = new JsonPojo();
- assertJsonEquals("{string:'string-value',integer:100,'simple!':3}",
+ assertJsonEquals(JSON_POJO_AS_JSON,
JsonSerializer.serialize(pojo));
}