本文整理汇总了Java中com.google.gson.GsonBuilder.registerTypeAdapter方法的典型用法代码示例。如果您正苦于以下问题:Java GsonBuilder.registerTypeAdapter方法的具体用法?Java GsonBuilder.registerTypeAdapter怎么用?Java GsonBuilder.registerTypeAdapter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.google.gson.GsonBuilder
的用法示例。
在下文中一共展示了GsonBuilder.registerTypeAdapter方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: configureGsonBuilder
import com.google.gson.GsonBuilder; //导入方法依赖的package包/类
private GsonBuilder configureGsonBuilder() {
GsonBuilder gsonBuilder = new GsonBuilder();
JsonSerializer<NavigationArriveEvent> arriveSerializer = new ArriveEventSerializer();
gsonBuilder.registerTypeAdapter(NavigationArriveEvent.class, arriveSerializer);
JsonSerializer<NavigationDepartEvent> departSerializer = new DepartEventSerializer();
gsonBuilder.registerTypeAdapter(NavigationDepartEvent.class, departSerializer);
JsonSerializer<NavigationCancelEvent> cancelSerializer = new CancelEventSerializer();
gsonBuilder.registerTypeAdapter(NavigationCancelEvent.class, cancelSerializer);
JsonSerializer<NavigationFeedbackEvent> feedbackSerializer = new FeedbackEventSerializer();
gsonBuilder.registerTypeAdapter(NavigationFeedbackEvent.class, feedbackSerializer);
JsonSerializer<NavigationRerouteEvent> rerouteSerializer = new RerouteEventSerializer();
gsonBuilder.registerTypeAdapter(NavigationRerouteEvent.class, rerouteSerializer);
JsonSerializer<NavigationFasterRouteEvent> fasterRouteSerializer = new FasterRouteEventSerializer();
gsonBuilder.registerTypeAdapter(NavigationFasterRouteEvent.class, fasterRouteSerializer);
return gsonBuilder;
}
示例2: buildGsonConverterFactory
import com.google.gson.GsonBuilder; //导入方法依赖的package包/类
/**
* 构建GSON转换器
* @return GsonConverterFactory
*/
private static GsonConverterFactory buildGsonConverterFactory(){
GsonBuilder builder = new GsonBuilder();
builder.setLenient();
// 注册类型转换适配器
builder.registerTypeAdapter(Date.class, new JsonDeserializer<Date>() {
@Override
public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
return null == json ? null : new Date(json.getAsLong());
}
});
Gson gson = builder.create();
return GsonConverterFactory.create(gson);
}
示例3: checkDepartSerializing
import com.google.gson.GsonBuilder; //导入方法依赖的package包/类
@Test
public void checkDepartSerializing() throws Exception {
Date testDate = new Date();
NavigationMetadata metadata = new NavigationMetadata(testDate, 13, 22, 180, "sdkIdentifier", "sdkVersion",
3, "sessionID", 10.5, 15.67, "geometry", "profile", false, "device", "LostLocationEngine", 50);
metadata.setCreated(TelemetryUtils.generateCreateDateFormatted(testDate));
NavigationState navigationState = new NavigationState(metadata);
NavigationDepartEvent navigationDepartEvent = new NavigationDepartEvent(navigationState);
GsonBuilder gsonBuilder = new GsonBuilder();
JsonSerializer<NavigationDepartEvent> serializer = new DepartEventSerializer();
gsonBuilder.registerTypeAdapter(NavigationDepartEvent.class, serializer);
Gson customGson = gsonBuilder.create();
String payload = customGson.toJson(navigationDepartEvent);
String expectedJson = "{\"absoluteDistanceToDestination\":50,\"startTimestamp\":\""
+ TelemetryUtils.generateCreateDateFormatted(testDate) + "\",\"distanceCompleted\":13,\"distanceRemaining\":22,"
+ "\"durationRemaining\":180,\"operatingSystem\":\"Android - null\",\"eventVersion\":3,"
+ "\"sdKIdentifier\":\"sdkIdentifier\",\"sdkVersion\":\"sdkVersion\",\"sessionIdentifier\":\"sessionID\","
+ "\"lat\":10.5,\"lng\":15.67,\"geometry\":\"geometry\",\"created\":\""
+ TelemetryUtils.generateCreateDateFormatted(testDate) + "\",\"profile\":\"profile\",\"simulation\":false,"
+ "\"device\":\"device\",\"locationEngine\":\"LostLocationEngine\",\"event\":\"navigation.depart\"}";
assertEquals(expectedJson, payload);
}
示例4: gson
import com.google.gson.GsonBuilder; //导入方法依赖的package包/类
@Bean
public Gson gson() {
GsonBuilder builder = new GsonBuilder();
Converters.registerAll(builder);
builder.registerTypeAdapter(Version.class, new VersionTypeConverter());
return builder.create();
}
示例5: deserialize_linestring
import com.google.gson.GsonBuilder; //导入方法依赖的package包/类
@Test public void
deserialize_linestring(){
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(PositionDto.class, new PositionDeserializer());
gsonBuilder.registerTypeAdapter(LineStringDto.class, new LineStringDeserializer());
Gson gson = gsonBuilder.create();
String lineStringGeoJson = "{ \"type\": \"LineString\", \"coordinates\": [ [100.0, 4.0], [101.0, 9.0] ] }";
LineStringDto lineString = gson.fromJson(lineStringGeoJson, LineStringDto.class);
assertThat(lineString.getPositions().get(0).getLongitude(), equalTo(100.0));
assertThat(lineString.getPositions().get(0).getLatitude(), equalTo(4.0));
assertThat(lineString.getPositions().get(1).getLongitude(), equalTo(101.0));
assertThat(lineString.getPositions().get(1).getLatitude(), equalTo(9.0));
}
示例6: checkArriveSerializing
import com.google.gson.GsonBuilder; //导入方法依赖的package包/类
@Test
public void checkArriveSerializing() throws Exception {
Date testDate = new Date();
NavigationMetadata metadata = new NavigationMetadata(testDate, 13, 22, 180, "sdkIdentifier", "sdkVersion",
3, "sessionID", 10.5, 15.67, "geometry", "profile", false, "device", "LostLocationEngine", 50);
metadata.setCreated(TelemetryUtils.generateCreateDateFormatted(testDate));
NavigationState navigationState = new NavigationState(metadata);
NavigationArriveEvent navigationArriveEvent = new NavigationArriveEvent(navigationState);
GsonBuilder gsonBuilder = new GsonBuilder();
JsonSerializer<NavigationArriveEvent> serializer = new ArriveEventSerializer();
gsonBuilder.registerTypeAdapter(NavigationArriveEvent.class, serializer);
Gson customGson = gsonBuilder.create();
String payload = customGson.toJson(navigationArriveEvent);
String expectedJson = "{\"event\":\"navigation.arrive\",\"absoluteDistanceToDestination\":50,\"startTimestamp\":\""
+ TelemetryUtils.generateCreateDateFormatted(testDate) + "\",\"distanceCompleted\":13,\"distanceRemaining\":22,"
+ "\"durationRemaining\":180,\"operatingSystem\":\"Android - null\",\"eventVersion\":3,"
+ "\"sdKIdentifier\":\"sdkIdentifier\",\"sdkVersion\":\"sdkVersion\",\"sessionIdentifier\":\"sessionID\","
+ "\"lat\":10.5,\"lng\":15.67,\"geometry\":\"geometry\",\"created\":\""
+ TelemetryUtils.generateCreateDateFormatted(testDate) + "\",\"profile\":\"profile\",\"simulation\":false,"
+ "\"device\":\"device\",\"locationEngine\":\"LostLocationEngine\"}";
assertEquals(expectedJson, payload);
}
示例7: main
import com.google.gson.GsonBuilder; //导入方法依赖的package包/类
public static void main(String[] args) throws IOException, ParseException {
configureLog();
if (args.length != 1) {
System.out.println("Usage: main <apk path>");
System.exit(-1);
}
String apkPath = args[0];
GsonBuilder gsonBuilder = new GsonBuilder();
JsonSerializer<TObjectIntMap> serializer = (src, typeOfSrc, context) -> {
JsonObject jsonMerchant = new JsonObject();
for (Object key : src.keys()) {
int value = src.get(key);
jsonMerchant.addProperty(key.toString(), value);
}
return jsonMerchant;
};
gsonBuilder.registerTypeAdapter(TObjectIntMap.class, serializer);
Gson gson = gsonBuilder
.disableHtmlEscaping()
.serializeSpecialFloatingPointValues()
.setExclusionStrategies(new JarFileExclusionStrategy())
.setPrettyPrinting()
.create();
Writer writer = new OutputStreamWriter(System.out);
ApkFile apkFile = new ApkFile(apkPath, true, true, true, true, false);
gson.toJson(apkFile, writer);
writer.close();
apkFile.close();
}
示例8: deserialize_point
import com.google.gson.GsonBuilder; //导入方法依赖的package包/类
@Test public void
deserialize_point(){
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(PositionDto.class, new PositionDeserializer());
gsonBuilder.registerTypeAdapter(PointDto.class, new PointDeserializer());
Gson gson = gsonBuilder.create();
String pointGeoJson = "{ \"type\": \"Point\", \"coordinates\": [14.244158, \n47.149861, 0.7890780] }";
PointDto pointDto = gson.fromJson(pointGeoJson, PointDto.class);
assertThat(pointDto.getLongitude(), equalTo(14.244158));
assertThat(pointDto.getLatitude(), equalTo(47.149861));
assertThat(pointDto.getElevation(), equalTo(0.7890780));
}
示例9: HeosJsonParser
import com.google.gson.GsonBuilder; //导入方法依赖的package包/类
public HeosJsonParser(HeosResponse response) {
this.response = response;
this.eventResponse = response.getEvent();
this.payloadResponse = response.getPayload();
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(HeosResponseEvent.class, new HeosDeserializerEvent());
gsonBuilder.registerTypeAdapter(HeosResponsePayload.class, new HeosDeserializerPayload());
this.gson = gsonBuilder.create();
}
示例10: writeEvaluationToFile
import com.google.gson.GsonBuilder; //导入方法依赖的package包/类
/**
* Write the evaluated data to a file.
* @param outFile file to write to
* @param map evaluated map with data from measurements.
*/
public void writeEvaluationToFile(final File outFile, final Map<String, Float> map){
final GsonBuilder gsonBuilder = new GsonBuilder();
//register bigDecimal typer for no scientific value printing
gsonBuilder.registerTypeAdapter(Float.class, new JsonSerializer<Float>() {
@Override
public JsonElement serialize(final Float src, final Type typeOfSrc, final JsonSerializationContext context) {
try{
final BigDecimal bigValue = BigDecimal.valueOf(src);
return new JsonPrimitive(bigValue.toPlainString());
}catch (final NumberFormatException nfe){
log.log(Level.INFO,map.toString());
log.log(Level.WARNING, "NumberFormatException during serialize. Number: " + src);
return new JsonPrimitive(src);
}
}
});
final Gson gson = gsonBuilder.setPrettyPrinting().create();
final String json = gson.toJson(map);
//write file to disc
try(
final BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(outFile))
){
outputStream.write(json.getBytes());
outputStream.flush();
} catch (IOException e) {
log.log(Level.WARNING,"IO Exception writing evaluation to disc",e);
}
}
示例11: AbstractGsonReader
import com.google.gson.GsonBuilder; //导入方法依赖的package包/类
/**
* Constructs an {@link AbstractGsonReader} with a custom
* {@link GsonBuilder} to support custom attributes.
*
* @param gsonBuilder
*/
public AbstractGsonReader(final GsonBuilder gsonBuilder) {
gsonBuilder.registerTypeAdapter(DataType.class, new DataType.JsonAdapter());
gsonBuilder.registerTypeHierarchyAdapter(Compression.class, CompressionAdapter.getJsonAdapter());
this.gson = gsonBuilder.create();
}
示例12: deserialize_multiline_multiple_lines
import com.google.gson.GsonBuilder; //导入方法依赖的package包/类
@Test public void
deserialize_multiline_multiple_lines(){
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(PositionDto.class, new PositionDeserializer());
gsonBuilder.registerTypeAdapter(LineStringDto.class, new LineStringDeserializer());
gsonBuilder.registerTypeAdapter(MultiLineStringDto.class, new MultiLineStringDeserializer());
Gson gson = gsonBuilder.create();
String multiLineStringGeoJson = "{ \"type\": \"Polygon\", "
+ " \"coordinates\": [ "
+ " [ "
+ " [100.0, 0.0],"
+ " [101.0, 0.0],"
+ " [101.0, 1.0],"
+ " [100.0, 1.0],"
+ " [100.0, 0.0] "
+ " ],"
+" [ "
+" [100.8, 0.8], "
+" [100.8, 0.2], "
+" [100.2, 0.2],"
+" [100.2, 0.8],"
+" [100.8, 0.8]"
+" ] "
+ " ] }";
MultiLineStringDto multiLineString = gson.fromJson(multiLineStringGeoJson, MultiLineStringDto.class);
assertThat(multiLineString.getLines().size(), equalTo(2));
LineStringDto lineStringDto = multiLineString.getLines().get(1);
assertThat(lineStringDto.getPositions().get(0).getLongitude(), equalTo(100.8));
assertThat(lineStringDto.getPositions().get(0).getLatitude(), equalTo(0.8));
assertThat(lineStringDto.getPositions().get(1).getLongitude(), equalTo(100.8));
assertThat(lineStringDto.getPositions().get(1).getLatitude(), equalTo(0.2));
assertThat(lineStringDto.getPositions().get(2).getLongitude(), equalTo(100.2));
assertThat(lineStringDto.getPositions().get(2).getLatitude(), equalTo(0.2));
assertThat(lineStringDto.getPositions().get(3).getLongitude(), equalTo(100.2));
assertThat(lineStringDto.getPositions().get(3).getLatitude(), equalTo(0.8));
assertThat(lineStringDto.getPositions().get(4).getLongitude(), equalTo(100.8));
assertThat(lineStringDto.getPositions().get(4).getLatitude(), equalTo(0.8));
}
示例13: registerTypeAdapter
import com.google.gson.GsonBuilder; //导入方法依赖的package包/类
/**
* Register an adapter to manage the date types as long values.
*
* @param builder The GsonBuilder to register the TypeAdapter to.
*/
private void registerTypeAdapter(GsonBuilder builder) {
builder.registerTypeAdapter(Date.class, new JsonDeserializer<Date>() {
public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
throws JsonParseException {
return new Date(json.getAsJsonPrimitive().getAsLong());
}
});
}
示例14: provideGson
import com.google.gson.GsonBuilder; //导入方法依赖的package包/类
@Provides
@Singleton
public Gson provideGson() {
GsonBuilder builder = new GsonBuilder();
builder.setLenient();
builder.registerTypeAdapter(Date.class, (JsonDeserializer<Date>) (json, typeOfT, context) -> {
if (json.getAsJsonPrimitive().isNumber()) {
return new Date(json.getAsJsonPrimitive().getAsLong() * 1000);
} else {
return null;
}
});
return builder.create();
}
示例15: testDeserialize
import com.google.gson.GsonBuilder; //导入方法依赖的package包/类
@Test
public void testDeserialize() throws Exception {
SmartHomeDirectiveDeserializer deserializer = new SmartHomeDirectiveDeserializer();
GsonBuilder builder = new GsonBuilder();
builder.registerTypeAdapter(SmartHomeDirectiveRequest.class, deserializer);
Gson gson = builder.create();
SmartHomeDirectiveRequest req = gson.fromJson(TEST_DIRECTIVE_JSON, SmartHomeDirectiveRequest.class);
Header requestHeader = req.getHeader();
assertEquals("6d6d6e14-8aee-473e-8c24-0d31ff9c17a2", requestHeader.getMessageId());
assertEquals(MessageName.DISCOVER_APPLIANCES_REQUEST, requestHeader.getName());
assertEquals(Namespace.DISCOVERY, requestHeader.getNamespace());
assertEquals("2", requestHeader.getPayloadVersion());
assertNotNull(req.getPayload());
}