java – Gson中的Stackoverflow异常
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – Gson中的Stackoverflow异常,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2191字,纯文字阅读大概需要4分钟。
内容图文
![java – Gson中的Stackoverflow异常](/upload/InfoBanner/zyjiaocheng/817/dfd91f7a003e49d6b92afa8a46c18564.jpg)
我试图使用Gson库将Json字符串解析为Java对象,但我遇到了StackoverflowException.
java.lang.StackOverflowError
com.google.gson.internal.$Gson$Types.checkNotPrimitive($Gson$Types.java:431)
com.google.gson.internal.$Gson$Types.access$000($Gson$Types.java:42)
com.google.gson.internal.$Gson$Types$WildcardTypeImpl.($Gson$Types.java:540)
com.google.gson.internal.$Gson$Types.canonicalize($Gson$Types.java:108)
com.google.gson.internal.$Gson$Types$WildcardTypeImpl.($Gson$Types.java:549)
com.google.gson.internal.$Gson$Types.canonicalize($Gson$Types.java:108)
com.google.gson.internal.$Gson$Types$WildcardTypeImpl.($Gson$Types.java:542)
com.google.gson.internal.$Gson$Types.canonicalize($Gson$Types.java:108)
com.google.gson.internal.$Gson$Types$WildcardTypeImpl.($Gson$Types.java:549)
com.google.gson.internal.$Gson$Types.canonicalize($Gson$Types.java:108)
Json字符串:
{"password":"ac@123","role":"normaluser","name":"Archana Chatterjee","username":"a.chatterjee","designation":"Teacher","id":"T_02","age":42}
解析代码:
Entity entity = null;
entity = gson.fromJson(json, Staff.class);
Java类:
public class Staff extends LoginEntity {
Logger logger = Logger.getRootLogger();
@SerializedName("name")
String name;
@SerializedName("designation")
String designation;
@SerializedName("role")
String role;
@SerializedName("age")
int age;
}
public abstract class LoginEntity extends Entity {
private static final Logger logger = Logger.getRootLogger();
@SerializedName("username")
String mailid;
@SerializedName("password")
String password;
}
Root class for all.
public abstract class Entity {
Logger logger = Logger.getRootLogger();
@SerializedName("id")
public String id;
}
我也在Gson2.2.2中找到了related error,但我使用的是Gson 2.2.4.所以,只是想确保这是我的错误还是在链接中提到错误.
解决方法:
If a field is marked transient, (by default) it is ignored and not included in the JSON serialization or deserialization.
…
By default, if you mark a field as transient, it will be excluded. As
well, if a field is marked as “static” then by default it will be
excluded.
因此,解决问题的方法只是将记录器标记为瞬态或静态,例如:
transient Logger logger = Logger.getRootLogger();
这样,变量将从序列化和反序列化中排除,您将不会收到该错误.
内容总结
以上是互联网集市为您收集整理的java – Gson中的Stackoverflow异常全部内容,希望文章能够帮你解决java – Gson中的Stackoverflow异常所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。