我的用例包括一个类似的类,使用不可变(https://immutables.github.io/):
@Value.Immutable
@Gson.TypeAdapters
public abstract class SampleClass {
public abstract String var1();
public abstract String var2();
public abstract Date date1();
}
我正在使用gson将其转换为Json字符串,然后使用:
再次获取对象SampleClass obj1 = new Gson().fromJson("generated_json_string",ImmutableSampleClass.class);
但现在我不得不将var1更改为String of List,现在我得到了:
java.lang.RuntimeException: Failed to invoke com.google.common.collect.ImmutableList() with no args
从JSON字符串中获取对象的正确方法是什么?
答案 0 :(得分:1)
弄清楚出了什么问题,从而回答了这个问题。 Immutables生成了类GsonAdaptersSampleClass,它实现了TypeAdapterFactory。使用此答案并在此答案的帮助下:https://stackoverflow.com/a/13624060/3192744
我可以找到以下正确的方法来反序列化JSON字符串:
accRev
答案 1 :(得分:0)
您可以尝试使用GSON库将JSON转换为现有的类对象。
http://howtodoinjava.com/best-practices/google-gson-tutorial-convert-java-object-to-from-json/