public GsonUtil enableComplexMapKeySerialization() { _gsonBuilder.enableComplexMapKeySerialization(); return this; }
builder.enableComplexMapKeySerialization().setPrettyPrinting().create(); Type type = new TypeToken<HashMap<Teacher,List<Student>>>(){}.getType(); String json = gson.toJson(map, type);
public static GsonBuilder buildSimpleGsonBuilder() { GsonBuilder gsonBuilder = new GsonBuilder() //支持Map的key为复杂对象的形式 .enableComplexMapKeySerialization(); gsonBuilder.registerTypeAdapter(TypeBuilder.newInstance(TreeMap.class) .addTypeParam(String.class) .addTypeParam(Object.class).build() , new TreeMapTypeAdapter()) .registerTypeAdapter(LocalDate.class, new LocalDateTypeAdapter()) .registerTypeAdapter(LocalDateTime.class, new LocalDateTimeTypeAdapter()) .registerTypeAdapter(DatePlus.class, new DatePlusTypeAdapter()) .registerTypeAdapter(BigDecimal.class, new BigDecimalTypeAdapter()) .registerTypeAdapter(Decimal.class, new DecimalTypeAdapter()) ; return gsonBuilder; }
GsonBuilder builder = new GsonBuilder(); Gson gson = builder.enableComplexMapKeySerialization().create(); Type type = new TypeToken<ArrayList< Map<String, ArrayList<Map<String, String> > > >>() {}.getType(); ArrayList< Map<String, ArrayList<Map<String, String> > > > obj = gson.fromJson(str, type);
// convert map to JSON String GsonBuilder builder = new GsonBuilder(); Gson gson = builder.enableComplexMapKeySerialization().setPrettyPrinting().create(); Type type = new TypeToken<HashMap<String,String>(){}.getType(); String json = gson.toJson(hashMap, type);
/** * @param params * @return JSONString */ private static String createJSONString(Map<String, Object> params) { Gson gson = new GsonBuilder().enableComplexMapKeySerialization().create(); return gson.toJson(params); }
GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.enableComplexMapKeySerialization(); Gson mapper = gsonBuilder.create(); //Object to JSON in String String jsonInString = mapper.toJson(myobject); //myobject=any object of class A
@Override public T parse(String json, Type type) { GsonBuilder builder = new GsonBuilder(); Gson gson = builder.enableComplexMapKeySerialization().create(); MyJson<T> jsonParsed = gson.fromJson(json, type); System.out.println(jsonParsed.toString()); return null; }
public static String serialize(Cache cache) { GsonBuilder builder = new GsonBuilder(); Gson gson = builder.enableComplexMapKeySerialization().setPrettyPrinting().create(); return gson.toJson(cache); }
@Override public void applyOptions(Context context, GlobalConfigModule.Builder builder) { if (!BuildConfig.LOG_DEBUG) //Release 时,让框架不再打印 Http 请求和响应的信息 builder.printHttpLogLevel(RequestInterceptor.Level.NONE); builder.baseurl(Api.APP_DOMAIN) .imageLoaderStrategy(new CommonGlideImageLoaderStrategy()) .globalHttpHandler(new GlobalHttpHandlerImpl(context)) .responseErrorListener(new ResponseErrorListenerImpl()) .gsonConfiguration((context1, gsonBuilder) -> {//这里可以自己自定义配置Gson的参数 gsonBuilder .serializeNulls()//支持序列化null的参数 .enableComplexMapKeySerialization();//支持将序列化key为object的map,默认只能序列化key为string的map }) .okhttpConfiguration(new ClientModule.OkhttpConfiguration() { @Override public void configOkhttp(Context context, OkHttpClient.Builder builder) { builder.sslSocketFactory(SSLSocketClient.getSSLSocketFactory(), SSLSocketClient.getTrustManager()); builder.hostnameVerifier(SSLSocketClient.getHostnameVerifier()); //让 Retrofit 同时支持多个 BaseUrl 以及动态改变 BaseUrl. 详细使用请方法查看 https://github.com/JessYanCoding/RetrofitUrlManager RetrofitUrlManager.getInstance().with(builder); } }) .rxCacheConfiguration((context1, rxCacheBuilder) -> {//这里可以自己自定义配置RxCache的参数 rxCacheBuilder.useExpiredDataIfLoaderNotAvailable(true); return null; }); }
public void writeMapObject(String key, Map<?, ?> object) { try { Gson gson = new GsonBuilder().enableComplexMapKeySerialization().setPrettyPrinting().create(); try (JsonWriter writer = new JsonWriter(new FileWriter(dataSource))) { JsonObject jsonObject = new JsonObject(); jsonObject.add(key, gson.toJsonTree(object)); gson.toJson(jsonObject, writer); } } catch (IOException e) { logger.error(e); } }
public GsonSerializer(ExclusionStrategy[] exclusionStrategies) { gson = new GsonBuilder().enableComplexMapKeySerialization().setExclusionStrategies(exclusionStrategies).setPrettyPrinting() .create(); }
public static Gson gsonBuilder() { return new GsonBuilder() .registerTypeAdapter(BuildStateEnum.class, new BuildStateEnumTypeAdaptor()) .enableComplexMapKeySerialization() .setPrettyPrinting() .create(); } }
private void initGson() { final GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.excludeFieldsWithoutExposeAnnotation(); gsonBuilder.enableComplexMapKeySerialization(); gsonBuilder.registerTypeAdapter(MeshModel.class, new InternalMeshModelDeserializer()); gsonBuilder.setPrettyPrinting(); mGson = gsonBuilder.create(); }
@NonNull public String persist() throws IOException { //noinspection SpellCheckingInspection GsonBuilder gson = new GsonBuilder().setPrettyPrinting(); gson.enableComplexMapKeySerialization(); MessageJsonSerializer.registerTypeAdapters(gson); return gson.create().toJson(this); }
private void initGsonBuilder() { GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.registerTypeAdapter(EncryptionKey.class, new EncryptionKeyAdapter()); gsonBuilder.registerTypeAdapter(PrincipalName.class, new PrincipalNameAdapter()); gsonBuilder.registerTypeAdapter(KerberosTime.class, new KerberosTimeAdapter()); gsonBuilder.enableComplexMapKeySerialization(); gsonBuilder.setPrettyPrinting(); gson = gsonBuilder.create(); }
private void initGsonBuilder() { GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.registerTypeAdapter(EncryptionKey.class, new EncryptionKeyAdapter()); gsonBuilder.registerTypeAdapter(PrincipalName.class, new PrincipalNameAdapter()); gsonBuilder.registerTypeAdapter(KerberosTime.class, new KerberosTimeAdapter()); gsonBuilder.enableComplexMapKeySerialization(); gsonBuilder.setPrettyPrinting(); gson = gsonBuilder.create(); }
@SuppressWarnings("SpellCheckingInspection") @NonNull private static Gson getGsonParser() { GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.enableComplexMapKeySerialization(); gsonBuilder.registerTypeAdapter(XmlNode.NodeName.class, new NodeNameDeserializer()); MessageJsonSerializer.registerTypeAdapters(gsonBuilder); return gsonBuilder.create(); }
public JsonConverter build() { registerJsonTypeAdapters(UtilTypeCoreAdapters.adapters()); registerJsonTypeAdapters(Java8TypeAdapters.adapters()); registerJsonTypeAdapter(new AtomicTypeAdapter(typeSafeValues)); if (prettyPrint){ gsonBuilder.setPrettyPrinting(); } gsonBuilder.enableComplexMapKeySerialization(); gsonBuilder.serializeNulls() .setDateFormat(ISO_DATE_TIME_FORMAT); return new JsonConverter(gsonBuilder.create()); }
public GsonUtil() { gsonBuilder = new GsonBuilder().enableComplexMapKeySerialization(); gsonBuilder.registerTypeHierarchyAdapter(Pack.class, new PackDeserializer()); gsonBuilder.registerTypeHierarchyAdapter(UiElementSelector.class, new UiElementSelectorDeserializer()); gsonBuilder.registerTypeHierarchyAdapter(RequestMessage.class, new RequestMessageSerializer()); gsonBuilder.registerTypeHierarchyAdapter(RequestMessage.class, new RequestMessageDeserializer()); gsonBuilder.registerTypeHierarchyAdapter(ResponseMessage.class, new ResponseMessageSerializer()); gsonBuilder.registerTypeHierarchyAdapter(ResponseMessage.class, new ResponseMessageDeserializer()); g = gsonBuilder.create(); }