Hi Adrian, Would it be better if you make "mapper" property to be public?
Now, I cannot not change date format in JSON string even though Jackson allow to do. http://wiki.fasterxml.com/JacksonFAQDateHandling For example, I want to change: createdTxStamp: 1386071477388 to: createdTxStamp: "2013-12-03" Best Regards, Chatree Srichart On Mon, Oct 27, 2014 at 4:06 PM, <[email protected]> wrote: > Author: adrianc > Date: Mon Oct 27 09:06:59 2014 > New Revision: 1634481 > > URL: http://svn.apache.org/r1634481 > Log: > Integrate JSON.java with the Jackson library. > > Modified: > > ofbiz/branches/json-integration-refactoring/framework/base/src/org/ofbiz/base/lang/JSON.java > > Modified: > ofbiz/branches/json-integration-refactoring/framework/base/src/org/ofbiz/base/lang/JSON.java > URL: > http://svn.apache.org/viewvc/ofbiz/branches/json-integration-refactoring/framework/base/src/org/ofbiz/base/lang/JSON.java?rev=1634481&r1=1634480&r2=1634481&view=diff > > ============================================================================== > --- > ofbiz/branches/json-integration-refactoring/framework/base/src/org/ofbiz/base/lang/JSON.java > (original) > +++ > ofbiz/branches/json-integration-refactoring/framework/base/src/org/ofbiz/base/lang/JSON.java > Mon Oct 27 09:06:59 2014 > @@ -23,23 +23,30 @@ import java.io.InputStream; > import java.io.Reader; > > import org.apache.commons.io.IOUtils; > -import org.ofbiz.base.lang.ThreadSafe; > import org.ofbiz.base.util.Assert; > > +import com.fasterxml.jackson.databind.ObjectMapper; > + > /** A JSON object. */ > @ThreadSafe > public final class JSON { > > + // TODO: Find a generic way to modify mapper options > + private static final ObjectMapper mapper = new ObjectMapper(); > + > public static JSON from(InputStream inStream) throws IOException { > Assert.notNull("inStream", inStream); > String jsonString = IOUtils.toString(inStream, "UTF-8"); > return from(jsonString); > } > > - public static JSON from(Object object) { > + public static JSON from(Object object) throws IOException { > Assert.notNull("object", object); > - // TODO: Finish implementation. > - return null; > + try { > + return from(mapper.writeValueAsString(object)); > + } catch (Exception e) { > + throw new IOException(e); > + } > } > > public static JSON from(Reader reader) throws IOException { > @@ -70,9 +77,14 @@ public final class JSON { > return jsonString.hashCode(); > } > > - public <T> T toObject() { > - // TODO: Finish implementation. > - return null; > + public <T> T toObject(Class<T> targetClass) throws IOException { > + try { > + return mapper.readValue(jsonString, targetClass); > + } catch (IOException e) { > + throw e; > + } catch (Exception e) { > + throw new IOException(e); > + } > } > > @Override > > >
