You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by sm...@apache.org on 2011/06/28 00:39:42 UTC
svn commit: r1140352 - in /pivot/trunk/core:
src/org/apache/pivot/json/JSON.java
test/org/apache/pivot/json/test/JSONSerializerTest.java
Author: smartini
Date: Mon Jun 27 22:39:42 2011
New Revision: 1140352
URL: http://svn.apache.org/viewvc?rev=1140352&view=rev
Log:
PIVOT-764
Modified:
pivot/trunk/core/src/org/apache/pivot/json/JSON.java
pivot/trunk/core/test/org/apache/pivot/json/test/JSONSerializerTest.java
Modified: pivot/trunk/core/src/org/apache/pivot/json/JSON.java
URL: http://svn.apache.org/viewvc/pivot/trunk/core/src/org/apache/pivot/json/JSON.java?rev=1140352&r1=1140351&r2=1140352&view=diff
==============================================================================
--- pivot/trunk/core/src/org/apache/pivot/json/JSON.java (original)
+++ pivot/trunk/core/src/org/apache/pivot/json/JSON.java Mon Jun 27 22:39:42 2011
@@ -19,7 +19,9 @@ package org.apache.pivot.json;
import org.apache.pivot.beans.BeanAdapter;
import org.apache.pivot.collections.ArrayList;
import org.apache.pivot.collections.Dictionary;
+import org.apache.pivot.collections.Map;
import org.apache.pivot.collections.Sequence;
+import org.apache.pivot.collections.adapter.MapAdapter;
/**
* Contains utility methods for working with JSON or JSON-like data structures.
@@ -71,9 +73,9 @@ public class JSON {
String key = keys.get(i);
- BeanAdapter beanAdapter = new BeanAdapter(value);
- if (beanAdapter.containsKey(key)) {
- value = beanAdapter.get(key);
+ Map adapter = value instanceof java.util.Map ? new MapAdapter((java.util.Map) value) : new BeanAdapter(value);
+ if (adapter.containsKey(key)) {
+ value = adapter.get(key);
} else if (value instanceof Sequence<?>) {
Sequence<Object> sequence = (Sequence<Object>)value;
value = sequence.get(Integer.parseInt(key));
@@ -145,11 +147,11 @@ public class JSON {
throw new IllegalArgumentException("Invalid path.");
}
- BeanAdapter beanAdapter = new BeanAdapter(parent);
+ Map adapter = parent instanceof java.util.Map ? new MapAdapter((java.util.Map) parent) : new BeanAdapter(parent);
Object previousValue;
- if (beanAdapter.containsKey(key)) {
- previousValue = beanAdapter.put(key, value);
+ if (adapter.containsKey(key)) {
+ previousValue = adapter.put(key, value);
} else if (parent instanceof Sequence<?>) {
Sequence<Object> sequence = (Sequence<Object>)parent;
previousValue = sequence.update(Integer.parseInt(key), value);
@@ -230,8 +232,8 @@ public class JSON {
if (parent == null) {
containsKey = false;
} else {
- BeanAdapter beanAdapter = new BeanAdapter(parent);
- containsKey = beanAdapter.containsKey(key);
+ Map adapter = parent instanceof java.util.Map ? new MapAdapter((java.util.Map) parent) : new BeanAdapter(parent);
+ containsKey = adapter.containsKey(key);
if (!containsKey) {
if (parent instanceof Sequence<?>) {
Modified: pivot/trunk/core/test/org/apache/pivot/json/test/JSONSerializerTest.java
URL: http://svn.apache.org/viewvc/pivot/trunk/core/test/org/apache/pivot/json/test/JSONSerializerTest.java?rev=1140352&r1=1140351&r2=1140352&view=diff
==============================================================================
--- pivot/trunk/core/test/org/apache/pivot/json/test/JSONSerializerTest.java (original)
+++ pivot/trunk/core/test/org/apache/pivot/json/test/JSONSerializerTest.java Mon Jun 27 22:39:42 2011
@@ -144,4 +144,21 @@ public class JSONSerializerTest {
assertFalse(o1.equals(o2));
}
+
+ @Test
+ public void testJavaMap()
+ {
+ System.out.println("Test interaction with Standard java.util.Map");
+
+ java.util.HashMap<String, java.util.Map<String, String>> root = new java.util.HashMap<String, java.util.Map<String, String>>();
+ java.util.HashMap<String, String> child = new java.util.HashMap<String, String>();
+
+ child.put("name", "John Doe");
+ root.put("child", child);
+
+ String childName = JSON.get(root, "child.name");
+ System.out.println("JSON child.name = \"" + childName + "\"");
+ assertEquals(childName, "John Doe");
+ }
+
}