0

I want to store a large potion of data in a JSON Object. The generated Json file has up to 3,000,000 characters. This is the Code I use to store / restore the Java object.

String sMetaData = new GsonBuilder().create().toJson(metadataEntity);
MetadataEntity test = new Gson().fromJson(sMetaData , MetadataEntity.class);

metadataEntity can sometimes contains a Map. Every time the Map isn't null I get this exception.

Exception in thread "Thread-2" com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1716009 path $.DataContainerEntity.pointEntityRectangleMap.
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:226)
    at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:41)
    at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:186)
    at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:145)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222)
    at com.google.gson.Gson.fromJson(Gson.java:932)
    at com.google.gson.Gson.fromJson(Gson.java:897)
    at com.google.gson.Gson.fromJson(Gson.java:846)
    at com.google.gson.Gson.fromJson(Gson.java:817)


Can't gson handle maps from complextypes? Or should I "precompile"/change the Data before Storing to Json?

Christian
  • 22,585
  • 9
  • 80
  • 106
Meeresgott
  • 431
  • 3
  • 17

0 Answers0