Java 使用GSON时不兼容的类型
第一:这是我第一次使用GSON 试图解析一些JSON,我得到了“不兼容类型”Java 使用GSON时不兼容的类型,java,json,gson,Java,Json,Gson,第一:这是我第一次使用GSON 试图解析一些JSON,我得到了“不兼容类型” PlayerData是一个内部类: class PlayerData { public Point position; public String mapname; public int level; public PlayerData() {} } 是什么原因造成的?在GSON文档中,显然有一个方法public T fromJson(字符串json, 类(ClassSoft) 抛出
PlayerData
是一个内部类:
class PlayerData {
public Point position;
public String mapname;
public int level;
public PlayerData() {}
}
是什么原因造成的?在GSON文档中,显然有一个方法public T fromJson(字符串json,
类(ClassSoft)
抛出JsonSyntaxException
,我在(AFAIK)做的事情和谷歌在其GSON用户指南中做的一样
编辑:XCode做了一些奇怪的事情,当我试图用
Terminal
编译它时,除了我对服务器的请求之外,一切都正常,这导致了几个NPE,因为response
仍然是空的。多亏了maaartinus,我知道不应该有编译器错误,所以我尝试在不使用XCode的情况下编译它。尝试将内部类设置为静态的
,否则您将需要一个自定义的InstanceCreator
Gson无法自动反序列化纯内部类,因为
它们的no-args构造函数还需要对包含
对象,该对象在反序列化时不可用。你可以
通过使内部类保持静态或
为其提供自定义InstanceCreator
请尝试使内部类成为静态的,否则您将需要一个自定义的
InstanceCreator
,如中所述
Gson无法自动反序列化纯内部类,因为
它们的no-args构造函数还需要对包含
对象,该对象在反序列化时不可用。你可以
通过使内部类保持静态或
为其提供自定义InstanceCreator
对我来说,它可以编译,但我不得不用
GSON
替换GSON
。要么你在写这个问题的时候太草率了,要么你用了一些我从没听说过的“GSON”
您的响应是字符串吗
一旦你运行它,你需要Vrushank Desai的答案。对我来说,它可以编译,但我不得不用GSON
替换GSON
。要么你在写这个问题的时候太草率了,要么你用了一些我从没听说过的“GSON”
您的响应是字符串吗
一旦运行,您需要Vrushank Desai的答案。响应的值是什么?这无关紧要,因为这是一个编译器错误。Response是我在运行时从服务器获取的字符串。但是,由于错误发生在应用程序运行之前,因此从未实际获取该值。响应的值是多少?这无关紧要,因为这是一个编译器错误。Response是我在运行时从服务器获取的字符串。但是,由于错误发生在应用程序运行之前,因此从未实际获取该值。是的,响应是一个字符串,但这是一个编译器错误,因此从未从问题中检索响应的值。但这不会改变响应的类型当然。。。早上写评论太早了。你是对的!我想这是一个XCode错误。当我通过Terminal
编译它时,它会编译,但会给我一些NullPointerException。显然,我对服务器的请求不起作用,因为response
仍然是emtpy。是的,response是一个字符串,但这是一个编译器错误,因此永远不会从问题中检索response的值。但这当然不会改变类型。。。早上写评论太早了。你是对的!我想这是一个XCode错误。当我通过Terminal
编译它时,它会编译,但会给我一些NullPointerException。显然,我对服务器的请求不起作用,因为response
仍然是emtpy。这不起作用,它仍然表示不兼容类型
。我希望XCode 2.5能提供更多的信息。这是一个有趣的工具(或者你不能使用它)。通常,这样的问题需要几秒钟的时间,通常在eclipse中按下ctrl-1
就可以解决它。这不起作用,它仍然表示不兼容类型
。我希望XCode 2.5能提供更多的信息。这是一个有趣的工具(或者你不能使用它)。通常,这样的问题需要几秒钟的时间,通常在eclipse中按下ctrl-1
就可以解决这个问题。
class PlayerData {
public Point position;
public String mapname;
public int level;
public PlayerData() {}
}