| package eclipselink.example.moxy.twitter; |
| |
| import java.util.Date; |
| |
| import javax.xml.bind.JAXBContext; |
| import javax.xml.bind.JAXBElement; |
| import javax.xml.bind.Marshaller; |
| import javax.xml.bind.Unmarshaller; |
| import javax.xml.transform.stream.StreamSource; |
| |
| import org.eclipse.persistence.jaxb.MarshallerProperties; |
| import org.eclipse.persistence.jaxb.UnmarshallerProperties; |
| import org.eclipse.persistence.oxm.MediaType; |
| |
| import eclipselink.example.moxy.twitter.model.Result; |
| import eclipselink.example.moxy.twitter.model.SearchResults; |
| |
| public class Main { |
| |
| public static void main(String[] args) throws Exception { |
| JAXBContext jc = JAXBContext.newInstance(SearchResults.class); |
| |
| System.out.println("Running EclipseLink MOXy Twitter Example"); |
| |
| Unmarshaller unmarshaller = jc.createUnmarshaller(); |
| unmarshaller.setProperty(UnmarshallerProperties.MEDIA_TYPE, MediaType.APPLICATION_JSON); |
| unmarshaller.setProperty(UnmarshallerProperties.JSON_INCLUDE_ROOT, false); |
| |
| StreamSource source = new StreamSource("http://search.twitter.com/search.json?q=jaxb"); |
| JAXBElement<SearchResults> jaxbElement = unmarshaller.unmarshal(source, SearchResults.class); |
| |
| Result result = new Result(); |
| result.setCreatedAt(new Date()); |
| result.setFromUser("bdoughan"); |
| result.setText("You can now use EclipseLink JAXB (MOXy) with JSON :)"); |
| jaxbElement.getValue().getResults().add(result); |
| |
| Marshaller marshaller = jc.createMarshaller(); |
| marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); |
| marshaller.setProperty(MarshallerProperties.MEDIA_TYPE, MediaType.APPLICATION_JSON); |
| marshaller.setProperty(MarshallerProperties.JSON_INCLUDE_ROOT, false); |
| marshaller.marshal(jaxbElement, System.out); |
| System.out.println(); |
| } |
| |
| } |