Java tutorial
/* * Copyright 2015 Vertafore, Inc. All rights reserved. * * Disclaimers: * This software is provided "as is," without warranty of any kind, express or * implied, including but not limited to the warranties of merchantability, * fitness for a particular purpose and non-infringement. This source code * should not be relied upon as the sole basis for solving a problem whose * incorrect solution could result in injury to person or property. In no * event shall the author or contributors be held liable for any damages * arising in any way from the use of this software. The entire risk as to the * results and performance of this source code is assumed by the user. * * Permission is granted to use this software for internal use only, subject * to the following restrictions: * 1. This source code MUST retain the above copyright notice, disclaimer, * and this list of conditions. * 2. This source code may be used ONLY within the scope of the original * agreement under which this source code was provided and may not be * distributed to any third party without the express written consent of * Vertafore, Inc. * 3. This source code along with all obligations and rights under the * original License Agreement may not be assigned to any third party * without the expressed written consent of Vertafore, Inc., except that * assignment may be made to a successor to the business or * substantially all of its assets. All parties bind their successors, * executors, administrators, and assignees to all covenants of this * Agreement. * * All advertising materials mentioning features or use of this software must * display the following acknowledgment: * * Trademark Disclaimer: * All patent, copyright, trademark and other intellectual property rights * included in the source code are owned exclusively by Vertafore, Inc. */ package com.samlikescode.stackoverflow.questions.q29630371; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.FluentIterable; import org.junit.Test; import java.io.IOException; import static org.junit.Assert.assertFalse; public class PersonTest { @Test public void serializePersonTest() throws JsonProcessingException { // set up test data including parent properties Person person = new Person("Database property 1", "Database property 2"); person.setIndex("1"); person.setFirstName("Joe"); person.setLastName("Bob"); // register the mix in ObjectMapper om = new ObjectMapper().addMixIn(Person.class, PersonMixIn.class); // translate object to JSON string using Jackson String json = om.writeValueAsString(person); assertFalse(json.contains("dbPropertyA")); assertFalse(json.contains("dbPropertyB")); assertFalse(json.contains("index")); System.out.println(json); } @Test public void serializePerson2Test() throws JsonProcessingException { // set up test data including parent properties Person person = new Person("Database property 1", "Database property 2"); person.setIndex("1"); person.setFirstName("Joe"); person.setLastName("Bob"); // register the mix in // ObjectMapper om = new ObjectMapper() // .addMixIn(Person.class, PersonMixIn.class); ObjectMapper om = new ObjectMapper(); // translate object to JSON string using Jackson String json = om.writeValueAsString(person); // assertFalse(json.contains("dbPropertyA")); // assertFalse(json.contains("dbPropertyB")); // assertFalse(json.contains("index")); System.out.println(json); } @Test public void deserializePersonTest() throws IOException { String json = "{\"dbPropertyA\":\"Database property 1\",\"dbPropertyB\":\"Database property 2\",\"index\":\"1\",\"firstName\":\"Joe\",\"lastName\":\"Bob\"}"; // register the mix in ObjectMapper om = new ObjectMapper() .addMixIn(Person.class, PersonMixIn.class); Person person = om.readValue(json, Person.class); // translate object to JSON string using Jackson // String json = om.writeValueAsString(person); // assertFalse(json.contains("dbPropertyA")); // assertFalse(json.contains("dbPropertyB")); // assertFalse(json.contains("index")); System.out.println(json); FluentIterable.from().toMap() } }