Author: mcucchiara
Date: Tue Mar 8 14:24:16 2011
New Revision: 1079368
URL: http://svn.apache.org/viewvc?rev=1079368&view=rev
Log:
WW-3524 - Added field bridge support
Added:
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/annotations/JSONFieldBridge.java
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/annotations/JSONParameter.java
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/bridge/
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/bridge/FieldBridge.java
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/bridge/ParameterizedBridge.java
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/bridge/StringBridge.java
struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/JSONWriterTest.java
struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/jsonwriter-write-bean-01.txt
struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/jsonwriter-write-bean-02.txt
Modified:
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONWriter.java
struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/TestUtils.java
Modified:
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONWriter.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONWriter.java?rev=1079368&r1=1079367&r2=1079368&view=diff
==============================================================================
---
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONWriter.java
(original)
+++
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONWriter.java
Tue Mar 8 14:24:16 2011
@@ -23,6 +23,10 @@ package org.apache.struts2.json;
import com.opensymphony.xwork2.util.logging.Logger;
import com.opensymphony.xwork2.util.logging.LoggerFactory;
import org.apache.struts2.json.annotations.JSON;
+import org.apache.struts2.json.annotations.JSONFieldBridge;
+import org.apache.struts2.json.annotations.JSONParameter;
+import org.apache.struts2.json.bridge.FieldBridge;
+import org.apache.struts2.json.bridge.ParameterizedBridge;
import java.beans.BeanInfo;
import java.beans.Introspector;
@@ -33,13 +37,7 @@ import java.text.CharacterIterator;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.text.StringCharacterIterator;
-import java.util.Calendar;
-import java.util.Collection;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Stack;
+import java.util.*;
import java.util.regex.Pattern;
/**
@@ -70,8 +68,7 @@ class JSONWriter {
private boolean excludeNullProperties;
/**
- * @param object
- * Object to be serialized into JSON
+ * @param object Object to be serialized into JSON
* @return JSON string for object
* @throws JSONException
*/
@@ -80,13 +77,12 @@ class JSONWriter {
}
/**
- * @param object
- * Object to be serialized into JSON
+ * @param object Object to be serialized into JSON
* @return JSON string for object
* @throws JSONException
*/
public String write(Object object, Collection<Pattern> excludeProperties,
- Collection<Pattern> includeProperties, boolean
excludeNullProperties) throws JSONException {
+ Collection<Pattern> includeProperties, boolean
excludeNullProperties) throws JSONException {
this.excludeNullProperties = excludeNullProperties;
this.buf.setLength(0);
this.root = object;
@@ -139,7 +135,7 @@ class JSONWriter {
if (object instanceof Class) {
this.string(object);
} else if (object instanceof Boolean) {
- this.bool(((Boolean) object).booleanValue());
+ this.bool((Boolean) object);
} else if (object instanceof Number) {
this.add(object);
} else if (object instanceof String) {
@@ -184,42 +180,22 @@ class JSONWriter {
PropertyDescriptor[] props = info.getPropertyDescriptors();
boolean hasData = false;
- for (int i = 0; i < props.length; ++i) {
- PropertyDescriptor prop = props[i];
+ for (PropertyDescriptor prop : props) {
String name = prop.getName();
Method accessor = prop.getReadMethod();
- Method baseAccessor = null;
- if (clazz.getName().indexOf("$$EnhancerByCGLIB$$") > -1) {
- try {
- baseAccessor = Class.forName(
- clazz.getName().substring(0,
clazz.getName().indexOf("$$"))).getMethod(
- accessor.getName(),
accessor.getParameterTypes());
- } catch (Exception ex) {
- LOG.debug(ex.getMessage(), ex);
- }
- } else if (clazz.getName().indexOf("$$_javassist") > -1) {
- try {
- baseAccessor = Class.forName(
- clazz.getName().substring(0,
clazz.getName().indexOf("_$$")))
- .getMethod(accessor.getName(),
accessor.getParameterTypes());
- } catch (Exception ex) {
- LOG.debug(ex.getMessage(), ex);
- }
- } else
- baseAccessor = accessor;
+ Method baseAccessor = findBaseAccessor(clazz, accessor);
if (baseAccessor != null) {
+ if (baseAccessor.isAnnotationPresent(JSON.class)) {
+ JSONAnnotationFinder jsonFinder = new
JSONAnnotationFinder(baseAccessor).invoke();
- JSON json = baseAccessor.getAnnotation(JSON.class);
- if (json != null) {
- if (!json.serialize())
- continue;
- else if (json.name().length() > 0)
- name = json.name();
+ if (!jsonFinder.shouldSerialize()) continue;
+ if (jsonFinder.getName() != null) {
+ name = jsonFinder.getName();
+ }
}
-
// ignore "class" and others
- if (this.shouldExcludeProperty(clazz, prop)) {
+ if (this.shouldExcludeProperty(prop)) {
continue;
}
String expr = null;
@@ -231,7 +207,11 @@ class JSONWriter {
expr = this.setExprStack(expr);
}
- Object value = accessor.invoke(object, new Object[0]);
+ Object value = accessor.invoke(object);
+ if
(baseAccessor.isAnnotationPresent(JSONFieldBridge.class)) {
+ value = getBridgedValue(baseAccessor, value);
+ }
+
boolean propertyPrinted = this.add(name, value, accessor,
hasData);
hasData = hasData || propertyPrinted;
if (this.buildExpr) {
@@ -253,6 +233,48 @@ class JSONWriter {
this.add("}");
}
+ private Object getBridgedValue(Method baseAccessor, Object value) throws
InstantiationException, IllegalAccessException {
+ JSONFieldBridge fieldBridgeAnn =
baseAccessor.getAnnotation(JSONFieldBridge.class);
+ if (fieldBridgeAnn != null) {
+ Class impl = fieldBridgeAnn.impl();
+ FieldBridge instance = (FieldBridge) impl.newInstance();
+
+ if (fieldBridgeAnn.params().length > 0 &&
ParameterizedBridge.class.isAssignableFrom(impl)) {
+ Map<String, String> params = new HashMap<String,
String>(fieldBridgeAnn.params().length);
+ for (JSONParameter param : fieldBridgeAnn.params()) {
+ params.put(param.name(), param.value());
+ }
+ ((ParameterizedBridge) instance).setParameterValues(params);
+ }
+ value = instance.objectToString(value);
+ }
+ return value;
+ }
+
+ private Method findBaseAccessor(Class clazz, Method accessor) {
+ Method baseAccessor = null;
+ if (clazz.getName().indexOf("$$EnhancerByCGLIB$$") > -1) {
+ try {
+ baseAccessor = Class.forName(
+ clazz.getName().substring(0,
clazz.getName().indexOf("$$"))).getMethod(
+ accessor.getName(), accessor.getParameterTypes());
+ } catch (Exception ex) {
+ LOG.debug(ex.getMessage(), ex);
+ }
+ } else if (clazz.getName().indexOf("$$_javassist") > -1) {
+ try {
+ baseAccessor = Class.forName(
+ clazz.getName().substring(0,
clazz.getName().indexOf("_$$")))
+ .getMethod(accessor.getName(),
accessor.getParameterTypes());
+ } catch (Exception ex) {
+ LOG.debug(ex.getMessage(), ex);
+ }
+ } else {
+ return accessor;
+ }
+ return baseAccessor;
+ }
+
/**
* Instrospect an Enum and serialize it as a name/value pair or as a bean
* including all its own properties
@@ -265,19 +287,13 @@ class JSONWriter {
}
}
- /**
- * Ignore "class" field
- */
- private boolean shouldExcludeProperty(Class clazz, PropertyDescriptor
prop) throws SecurityException,
+ private boolean shouldExcludeProperty(PropertyDescriptor prop) throws
SecurityException,
NoSuchFieldException {
String name = prop.getName();
- if (name.equals("class") || name.equals("declaringClass") ||
name.equals("cachedSuperClass")
- || name.equals("metaClass")) {
- return true;
- }
+ return name.equals("class") || name.equals("declaringClass") ||
name.equals("cachedSuperClass")
+ || name.equals("metaClass");
- return false;
}
private String expandExpr(int i) {
@@ -520,9 +536,8 @@ class JSONWriter {
/**
* Represent as unicode
- *
- * @param c
- * character to be encoded
+ *
+ * @param c character to be encoded
*/
private void unicode(char c) {
this.add("\\u");
@@ -545,12 +560,39 @@ class JSONWriter {
* If true, an Enum is serialized as a bean with a special property
* _name=name() as all as all other properties defined within the
enum.<br/>
* If false, an Enum is serialized as a name=value pair (name=name())
- *
- * @param enumAsBean
- * true to serialize an enum as a bean instead of as a
name=value
- * pair (default=false)
+ *
+ * @param enumAsBean true to serialize an enum as a bean instead of as a
name=value
+ * pair (default=false)
*/
public void setEnumAsBean(boolean enumAsBean) {
this.enumAsBean = enumAsBean;
}
+
+ private static class JSONAnnotationFinder {
+ private boolean serialize = true;
+ private Method accessor;
+ private String name;
+
+ public JSONAnnotationFinder(Method accessor) {
+ this.accessor = accessor;
+ }
+
+ boolean shouldSerialize() {
+ return serialize;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+
+ public JSONAnnotationFinder invoke() {
+ JSON json = accessor.getAnnotation(JSON.class);
+ serialize = json.serialize();
+ if (serialize && json.name().length() > 0) {
+ name = json.name();
+ }
+ return this;
+ }
+ }
}
Added:
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/annotations/JSONFieldBridge.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/annotations/JSONFieldBridge.java?rev=1079368&view=auto
==============================================================================
---
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/annotations/JSONFieldBridge.java
(added)
+++
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/annotations/JSONFieldBridge.java
Tue Mar 8 14:24:16 2011
@@ -0,0 +1,38 @@
+/*
+ * $Id: JSONFieldBridge.java 2010-10-28 10:25:38Z maurizio.cucchiara $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.struts2.json.annotations;
+
+import org.apache.struts2.json.bridge.FieldBridge;
+import org.apache.struts2.json.bridge.StringBridge;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface JSONFieldBridge {
+ Class<? extends FieldBridge> impl() default StringBridge.class;
+
+ public JSONParameter[] params() default {};
+}
Added:
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/annotations/JSONParameter.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/annotations/JSONParameter.java?rev=1079368&view=auto
==============================================================================
---
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/annotations/JSONParameter.java
(added)
+++
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/annotations/JSONParameter.java
Tue Mar 8 14:24:16 2011
@@ -0,0 +1,41 @@
+/*
+ * $Id: JSONParameter.java 2010-10-28 10:23:32Z maurizio.cucchiara $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.struts2.json.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * User: maurizio.cucchiara
+ * Date: Oct 28, 2010
+ * Time: 2:16:44 AM
+ * key/value parameter pattern
+ */
+@Target(ElementType.PARAMETER)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface JSONParameter {
+ String name();
+
+ String value();
+}
Added:
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/bridge/FieldBridge.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/bridge/FieldBridge.java?rev=1079368&view=auto
==============================================================================
---
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/bridge/FieldBridge.java
(added)
+++
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/bridge/FieldBridge.java
Tue Mar 8 14:24:16 2011
@@ -0,0 +1,31 @@
+/*
+ * $Id: FieldBridge.java 2010-10-28 10:30:59Z maurizio.cucchiara $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.struts2.json.bridge;
+
+/**
+ * User: maurizio.cucchiara
+ * Date: Oct 28, 2010
+ * Time: 12:06:13 AM
+ */
+public interface FieldBridge {
+ String objectToString(Object object);
+}
Added:
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/bridge/ParameterizedBridge.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/bridge/ParameterizedBridge.java?rev=1079368&view=auto
==============================================================================
---
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/bridge/ParameterizedBridge.java
(added)
+++
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/bridge/ParameterizedBridge.java
Tue Mar 8 14:24:16 2011
@@ -0,0 +1,34 @@
+/*
+ * $Id: ParameterizedBridge.java 2010-10-28 11:29:19Z maurizio.cucchiara $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.struts2.json.bridge;
+
+import java.util.Map;
+
+/**
+ * User: maurizio.cucchiara
+ * Date: Oct 28, 2010
+ * Time: 2:32:08 AM
+ */
+public interface ParameterizedBridge {
+
+ void setParameterValues(Map<String,String> parameters);
+}
Added:
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/bridge/StringBridge.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/bridge/StringBridge.java?rev=1079368&view=auto
==============================================================================
---
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/bridge/StringBridge.java
(added)
+++
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/bridge/StringBridge.java
Tue Mar 8 14:24:16 2011
@@ -0,0 +1,35 @@
+/*
+ * $Id: StringBridge.java 2010-10-28 10:30:59Z maurizio.cucchiara $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.struts2.json.bridge;
+
+/**
+ * User: maurizio.cucchiara
+ * Date: Oct 28, 2010
+ * Time: 12:46:16 AM
+ */
+public class StringBridge implements FieldBridge{
+
+ public String objectToString(Object object) {
+ if(object==null) return null;
+ return object.toString();
+ }
+}
Added:
struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/JSONWriterTest.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/JSONWriterTest.java?rev=1079368&view=auto
==============================================================================
---
struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/JSONWriterTest.java
(added)
+++
struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/JSONWriterTest.java
Tue Mar 8 14:24:16 2011
@@ -0,0 +1,63 @@
+package org.apache.struts2.json;
+
+import org.apache.struts2.StrutsTestCase;
+import org.apache.struts2.json.annotations.JSONFieldBridge;
+import org.apache.struts2.json.bridge.StringBridge;
+import org.junit.Test;
+
+import java.net.URL;
+
+public class JSONWriterTest extends StrutsTestCase{
+ @Test
+ public void testWrite() throws Exception {
+ Bean bean1=new Bean();
+ bean1.setStringField("str");
+ bean1.setBooleanField(true);
+ bean1.setCharField('s');
+ bean1.setDoubleField(10.1);
+ bean1.setFloatField(1.5f);
+ bean1.setIntField(10);
+ bean1.setLongField(100);
+ bean1.setEnumField(AnEnum.ValueA);
+ bean1.setEnumBean(AnEnumBean.Two);
+
+ JSONWriter jsonWriter = new JSONWriter();
+ jsonWriter.setEnumAsBean(false);
+ String json = jsonWriter.write(bean1);
+
TestUtils.assertEquals(JSONWriter.class.getResource("jsonwriter-write-bean-01.txt"),
json);
+ }
+
+ @Test
+ public void testWriteAnnotatedBean() throws Exception {
+ AnnotatedBean bean1=new AnnotatedBean();
+ bean1.setStringField("str");
+ bean1.setBooleanField(true);
+ bean1.setCharField('s');
+ bean1.setDoubleField(10.1);
+ bean1.setFloatField(1.5f);
+ bean1.setIntField(10);
+ bean1.setLongField(100);
+ bean1.setEnumField(AnEnum.ValueA);
+ bean1.setEnumBean(AnEnumBean.Two);
+ bean1.setUrl(new URL("http://www.google.com"));
+
+ JSONWriter jsonWriter = new JSONWriter();
+ jsonWriter.setEnumAsBean(false);
+ jsonWriter.setIgnoreHierarchy(false);
+ String json = jsonWriter.write(bean1);
+
TestUtils.assertEquals(JSONWriter.class.getResource("jsonwriter-write-bean-02.txt"),
json);
+ }
+
+ private class AnnotatedBean extends Bean{
+ private URL url;
+
+ @JSONFieldBridge(impl = StringBridge.class)
+ public URL getUrl() {
+ return url;
+ }
+
+ public void setUrl(URL url) {
+ this.url = url;
+ }
+ }
+}
Modified:
struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/TestUtils.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/TestUtils.java?rev=1079368&r1=1079367&r2=1079368&view=diff
==============================================================================
---
struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/TestUtils.java
(original)
+++
struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/TestUtils.java
Tue Mar 8 14:24:16 2011
@@ -20,6 +20,8 @@
*/
package org.apache.struts2.json;
+import org.junit.Assert;
+
import java.io.InputStream;
import java.net.URL;
import java.util.StringTokenizer;
@@ -75,6 +77,12 @@ public class TestUtils {
return bufferString.equals(writerString);
}
+ public static void assertEquals(URL source, String text) throws Exception {
+ String writerString = TestUtils.normalize(text, true);
+ String bufferString = TestUtils.normalize(readContent(source), true);
+ Assert.assertEquals(bufferString,writerString);
+ }
+
public static String readContent(URL url) throws Exception {
if (url == null)
throw new Exception("unable to verify a null URL");
Added:
struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/jsonwriter-write-bean-01.txt
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/jsonwriter-write-bean-01.txt?rev=1079368&view=auto
==============================================================================
---
struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/jsonwriter-write-bean-01.txt
(added)
+++
struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/jsonwriter-write-bean-01.txt
Tue Mar 8 14:24:16 2011
@@ -0,0 +1,15 @@
+{
+ "bigDecimal":null,
+ "bigInteger":null,
+ "booleanField":true,
+ "byteField":0,
+ "charField":"s",
+ "doubleField":10.1,
+ "enumBean":"Two",
+ "enumField":"ValueA",
+ "floatField":1.5,
+ "intField":10,
+ "longField":100,
+ "objectField":null,
+ "stringField":"str"
+}
Added:
struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/jsonwriter-write-bean-02.txt
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/jsonwriter-write-bean-02.txt?rev=1079368&view=auto
==============================================================================
---
struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/jsonwriter-write-bean-02.txt
(added)
+++
struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/jsonwriter-write-bean-02.txt
Tue Mar 8 14:24:16 2011
@@ -0,0 +1,16 @@
+{
+ "bigDecimal":null,
+ "bigInteger":null,
+ "booleanField":true,
+ "byteField":0,
+ "charField":"s",
+ "doubleField":10.1,
+ "enumBean":"Two",
+ "enumField":"ValueA",
+ "floatField":1.5,
+ "intField":10,
+ "longField":100,
+ "objectField":null,
+ "stringField":"str",
+ "url":"http:\/\/www.google.com"
+}