Bael 2721 - JSON deserialization mapping different JSON fields to same Java field (#6434)

* BAEL-2721 Examples of @JsonAlias and Gson's alternate parameter

* BAEL-2721 Update class and method names for JsonAlias and GsonAlternate
This commit is contained in:
pcoates33
2019-03-13 04:54:34 +00:00
committed by maibin
parent 57a1096c1f
commit 8ecfd8de08
4 changed files with 161 additions and 0 deletions
@@ -0,0 +1,39 @@
package org.baeldung.gson.deserialization;
import static org.junit.Assert.assertEquals;
import org.baeldung.gson.entities.Weather;
import org.junit.Test;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class GsonAlternateUnitTest {
@Test
public void givenTwoJsonFormats_whenDeserialized_thenWeatherObjectsCreated() throws Exception {
Gson gson = new GsonBuilder().create();
Weather weather = gson.fromJson("{" +
"\"location\": \"London\"," +
"\"temp\": 15," +
"\"weather\": \"Cloudy\"" +
"}", Weather.class);
assertEquals("London", weather.getLocation());
assertEquals("Cloudy", weather.getOutlook());
assertEquals(15, weather.getTemp());
weather = gson.fromJson("{" +
"\"place\": \"Lisbon\"," +
"\"temperature\": 35," +
"\"outlook\": \"Sunny\"" +
"}", Weather.class);
assertEquals("Lisbon", weather.getLocation());
assertEquals("Sunny", weather.getOutlook());
assertEquals(35, weather.getTemp());
}
}