You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Hudson (Commented) (JIRA)" <ji...@apache.org> on 2011/11/18 19:40:51 UTC

[jira] [Commented] (WW-3629) Provide a JSON Content Handler based on Jackson Lib

    [ https://issues.apache.org/jira/browse/WW-3629?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13153032#comment-13153032 ] 

Hudson commented on WW-3629:
----------------------------

Integrated in Struts2 #374 (See [https://builds.apache.org/job/Struts2/374/])
    WW-3629: Provide a JSON Content Handler based on Jackson Lib

jogep : 
Files : 
* /struts/struts2/trunk/plugins/rest/pom.xml
* /struts/struts2/trunk/plugins/rest/src/main/java/org/apache/struts2/rest/handler/JacksonLibHandler.java
* /struts/struts2/trunk/plugins/rest/src/test/java/org/apache/struts2/rest/handler/JacksonLibHandlerTest.java

                
> Provide a JSON Content Handler based on Jackson Lib
> ---------------------------------------------------
>
>                 Key: WW-3629
>                 URL: https://issues.apache.org/jira/browse/WW-3629
>             Project: Struts 2
>          Issue Type: Improvement
>          Components: Plugin - REST
>            Reporter: Johannes Geppert
>            Assignee: Johannes Geppert
>            Priority: Minor
>              Labels: handler, json
>             Fix For: 2.3
>
>   Original Estimate: 4h
>  Remaining Estimate: 4h
>
> Provide a JSON Content Handler based on Jackson Lib:
> http://jackson.codehaus.org/
> Jackson is a:
>     Streaming (reading, writing)
>     FAST (measured to be faster than any other Java json parser and data binder)
>     Powerful (full data binding for common JDK classes as well as any Java bean class, Collection, Map or Enum)
>     Zero-dependency (does not rely on other packages beyond JDK)
>     Open Source (LGPL or AL)
>     Fully conformant
>     Extremely configurable
> JSON processor (JSON parser + JSON generator) written in Java. Beyond basic JSON reading/writing (parsing, generating), it also offers full node-based Tree Model, as well as full OJM (Object/Json Mapper) data binding functionality.
> A Content Handler can look like this:
> import java.io.IOException;
> import java.io.Writer;
> import org.codehaus.jackson.JsonGenerationException;
> import org.codehaus.jackson.map.JsonMappingException;
> import org.codehaus.jackson.map.ObjectMapper;
> import org.codehaus.jackson.map.SerializationConfig.Feature;
> public class JsonContentHandler implements ContentHandler {
> 	public void fromObject(Object object, Writer writer) {
> 		try {
> 			ObjectMapper objectMapper = new ObjectMapper();
> 			objectMapper.configure(Feature.WRITE_NULL_MAP_VALUES, false);
> 			objectMapper.writeValue(writer, object);
> 		} catch (JsonGenerationException e) {
> 			e.printStackTrace();
> 		} catch (JsonMappingException e) {
> 			e.printStackTrace();
> 		} catch (IOException e) {
> 			e.printStackTrace();
> 		}
> 	}
> 	public String getContentType() {
> 		return "application/json";
> 	}
> 	public String getExtension() {
> 		return "json";
> 	}
> }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira