Oops - For XML the serialization is

    public void serialize(OutputStream stream) {
        try {
            final XmlMapper mapper = new XmlMapper();
            mapper.writeValue(stream, this);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }


On Apr 1, 2014, at 1:49 PM, Ralph Goers <[email protected]> wrote:

> I just did this the other day for both XML and JSON.  
> 
> For XML I did:
> 
>     public static TransactionRequest deserialize(String xmlFile) {
>         try {
>             XmlMapper mapper = new XmlMapper();
>             InputStream stream = new FileInputStream(xmlFile);
>             return mapper.readValue(stream, TransactionRequest.class);
>         } catch (Exception ex) {
>             ex.printStackTrace();
>         }
>         return null;
>     }
>     public static TransactionRequest deserialize(String xmlFile) {
>         try {
>             XmlMapper mapper = new XmlMapper();
>             InputStream stream = new FileInputStream(xmlFile);
>             return mapper.readValue(stream, TransactionRequest.class);
>         } catch (Exception ex) {
>             ex.printStackTrace();
>         }
>         return null;
>     }
> 
> Where needed I used things like:
> 
>     @JacksonXmlProperty(localName = "return")
>     private PostSale creditCardReturn;
> 
> and 
> 
>     @JacksonXmlProperty(isAttribute = true)
> 
> For JSON I did
> 
>     public static JSONRequest deserialize(String json)
>     {
>         try
>         {
>             ObjectMapper mapper = new ObjectMapper();
>             return mapper.readValue(json, JSONRequest.class);
>         }
>         catch (Exception ex)
>         {
>             ex.printStackTrace();
>         }
>         return null;
>     }
> 
> and
> 
>     public String serialize()
>     {
>         try
>         {
>             final ObjectMapper mapper = new ObjectMapper();
>             return mapper.writeValueAsString(this);
>         }
>         catch (Exception ex)
>         {
>             ex.printStackTrace();
>         }
>         return null;
>     }
> 
> HTH,
> 
> Ralph
> 
> 
> On Apr 1, 2014, at 1:05 PM, Gary Gregory <[email protected]> wrote:
> 
>> Well... so much for Jackson making my life easy. Jackson says it "supports" 
>> JAXB annotations but that must be only for the simplest cases. Jackson does 
>> not work with the JAXB annotations I used on Log4jLogEvents. This suppose 
>> this is not surprising. Back to the drawing board...
>> 
>> Gary
>> 
>> 
>> On Tue, Apr 1, 2014 at 12:05 PM, Gary Gregory <[email protected]> wrote:
>> All good ideas, thank you. The JSON API I know best is GSON, which let's you 
>> listen to objects opening and closing. Maybe Jackson has something like 
>> that... I'll have to dig in.
>> 
>> Gary
>> 
>> 
>> On Tue, Apr 1, 2014 at 11:14 AM, Ralph Goers <[email protected]> 
>> wrote:
>> So you are hacking the stream before passing it to the unmarshalling 
>> framework?  Then you will have to keep track of the ‘{‘ and ‘}’ characters 
>> yourself, either with the stack Matt suggests or as a counter.
>> 
>> Ralph
>> 
>> On Apr 1, 2014, at 8:07 AM, Matt Sicker <[email protected]> wrote:
>> 
>>> Keep a stack of {'s and pop them when you get a }. Like a deterministic 
>>> pushdown automaton.
>>> 
>>> 
>>> On 1 April 2014 07:45, Gary Gregory <[email protected]> wrote:
>>> I have a local patch for LOG4J2-583 to have the Log4j TCP and UDP socket 
>>> servers unmarhsal XML log events.
>>> 
>>> This is "easy" for XML because when you have a stream of bytes and you know 
>>> its encoding, you can look for the end of an event by looking for its 
>>> closing tag: </Event>. Right now, my XML processing code, looks for the end 
>>> tag and feeds JAXB a substring from the buffer. Easy. Done.
>>> 
>>> Not so much with JSON. You cannot use the same hack, there is no end tag. 
>>> All you have is an "end of object" closing bracket "}" which looks the same 
>>> as the closing marker for all other objects.
>>> 
>>> So it looks like I would need to hook in a little deeper into a JSON 
>>> unmarshalling framework to extract each JSON log events as I see them.
>>> 
>>> Any thoughts here?
>>> 
>>> Gary
>>> 
>>> -- 
>>> E-Mail: [email protected] | [email protected] 
>>> Java Persistence with Hibernate, Second Edition
>>> JUnit in Action, Second Edition
>>> Spring Batch in Action
>>> Blog: http://garygregory.wordpress.com 
>>> Home: http://garygregory.com/
>>> Tweet! http://twitter.com/GaryGregory
>>> 
>>> 
>>> 
>>> -- 
>>> Matt Sicker <[email protected]>
>> 
>> 
>> 
>> 
>> -- 
>> E-Mail: [email protected] | [email protected] 
>> Java Persistence with Hibernate, Second Edition
>> JUnit in Action, Second Edition
>> Spring Batch in Action
>> Blog: http://garygregory.wordpress.com 
>> Home: http://garygregory.com/
>> Tweet! http://twitter.com/GaryGregory
>> 
>> 
>> 
>> -- 
>> E-Mail: [email protected] | [email protected] 
>> Java Persistence with Hibernate, Second Edition
>> JUnit in Action, Second Edition
>> Spring Batch in Action
>> Blog: http://garygregory.wordpress.com 
>> Home: http://garygregory.com/
>> Tweet! http://twitter.com/GaryGregory
> 

Reply via email to