当前位置: 首页>>代码示例>>Java>>正文


Java GsonBuilder.registerTypeAdapter方法代码示例

本文整理汇总了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;
}
 
开发者ID:mapbox,项目名称:mapbox-events-android,代码行数:17,代码来源:TelemetryClient.java

示例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);
}
 
开发者ID:qiaop,项目名称:basicapp,代码行数:20,代码来源:RetrofitHelper.java

示例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);
}
 
开发者ID:mapbox,项目名称:mapbox-events-android,代码行数:29,代码来源:SerializerTest.java

示例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();
}
 
开发者ID:openmrs,项目名称:openmrs-contrib-addonindex,代码行数:8,代码来源:GsonConfiguration.java

示例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));

}
 
开发者ID:mokszr,项目名称:ultimate-geojson,代码行数:16,代码来源:LineStringDeserializerShould.java

示例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);
}
 
开发者ID:mapbox,项目名称:mapbox-events-android,代码行数:28,代码来源:SerializerTest.java

示例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();
}
 
开发者ID:CalebFenton,项目名称:apkfile,代码行数:33,代码来源:Main.java

示例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));
}
 
开发者ID:mokszr,项目名称:ultimate-geojson,代码行数:14,代码来源:PointDeserializerShould.java

示例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();

    }
 
开发者ID:Wire82,项目名称:org.openhab.binding.heos,代码行数:13,代码来源:HeosJsonParser.java

示例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);
    }
}
 
开发者ID:deB4SH,项目名称:Byter,代码行数:34,代码来源:PerformanceTimer.java

示例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();
}
 
开发者ID:saalfeldlab,项目名称:n5,代码行数:13,代码来源:AbstractGsonReader.java

示例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));
}
 
开发者ID:mokszr,项目名称:ultimate-geojson,代码行数:41,代码来源:MultiLineStringDeserializerShould.java

示例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());
        }
    });
}
 
开发者ID:BakkerTom,项目名称:happy-news,代码行数:14,代码来源:SourceManager.java

示例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();
}
 
开发者ID:afiqiqmal,项目名称:My-Android-Base-Code,代码行数:15,代码来源:ApiModule.java

示例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());
}
 
开发者ID:gdickinson,项目名称:alexa-smarthome-java,代码行数:15,代码来源:SmartHomeDirectiveDeserializerTest.java


注:本文中的com.google.gson.GsonBuilder.registerTypeAdapter方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。