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));
   }
 


Reply via email to