我有一个非常复杂的对象,到目前为止我用它通过@XmlRootElement
将它序列化为xml并且运行得非常好。现在我正在编写REST,我需要将它序列化为json。会发生什么是抛出StackOverflowError
异常。到目前为止我写的是原因可能是双向映射,但我认为这不是我的情况。可能是什么原因以及如何跟踪我是否错过了双向映射,这个对象非常复杂并且很长时间都受到很多人的支持,有一种简单的方法可以跟踪这个我想不到的吗?
谢谢!
EDIT 这是堆栈跟踪:
StackOverflowError
java.util.regex.Pattern.sequence(Pattern.java:1902)
java.util.regex.Pattern.expr(Pattern.java:1769)
java.util.regex.Pattern.compile(Pattern.java:1477)
java.util.regex.Pattern.<init>(Pattern.java:1150)
java.util.regex.Pattern.compile(Pattern.java:840)
net.sf.json.regexp.JdkRegexpMatcher.<init>(JdkRegexpMatcher.java:38)
net.sf.json.regexp.JdkRegexpMatcher.<init>(JdkRegexpMatcher.java:31)
net.sf.json.regexp.RegexpUtils.getMatcher(RegexpUtils.java:39)
net.sf.json.util.JSONTokener.matches(JSONTokener.java:113)
net.sf.json.JSONObject._fromJSONTokener(JSONObject.java:962)
net.sf.json.JSONObject.fromObject(JSONObject.java:156)
net.sf.json.util.JSONTokener.nextValue(JSONTokener.java:350)
net.sf.json.JSONObject._fromJSONTokener(JSONObject.java:1006)
net.sf.json.JSONObject.fromObject(JSONObject.java:156)
net.sf.json.util.JSONTokener.nextValue(JSONTokener.java:350)
net.sf.json.JSONObject._fromJSONTokener(JSONObject.java:1006)
net.sf.json.JSONObject.fromObject(JSONObject.java:156)
net.sf.json.util.JSONTokener.nextValue(JSONTokener.java:350)
net.sf.json.JSONObject._fromJSONTokener(JSONObject.java:1006)
net.sf.json.JSONObject.fromObject(JSONObject.java:156)
net.sf.json.util.JSONTokener.nextValue(JSONTokener.java:350)
net.sf.json.JSONObject._fromJSONTokener(JSONObject.java:1006)
net.sf.json.JSONObject.fromObject(JSONObject.java:156)
net.sf.json.util.JSONTokener.nextValue(JSONTokener.java:350)
net.sf.json.JSONObject._fromJSONTokener(JSONObject.java:1006)
net.sf.json.JSONObject.fromObject(JSONObject.java:156)
net.sf.json.util.JSONTokener.nextValue(JSONTokener.java:350)
net.sf.json.JSONObject._fromJSONTokener(JSONObject.java:1006)
net.sf.json.JSONObject.fromObject(JSONObject.java:156)
net.sf.json.util.JSONTokener.nextValue(JSONTokener.java:350)
net.sf.json.JSONObject._fromJSONTokener(JSONObject.java:1006)
net.sf.json.JSONObject.fromObject(JSONObject.java:156)
net.sf.json.util.JSONTokener.nextValue(JSONTokener.java:350)
net.sf.json.JSONObject._fromJSONTokener(JSONObject.java:1006)
net.sf.json.JSONObject.fromObject(JSONObject.java:156)
net.sf.json.util.JSONTokener.nextValue(JSONTokener.java:350)
net.sf.json.JSONObject._fromJSONTokener(JSONObject.java:1006)
net.sf.json.JSONObject.fromObject(JSONObject.java:156)
net.sf.json.util.JSONTokener.nextValue(JSONTokener.java:350)
net.sf.json.JSONObject._fromJSONTokener(JSONObject.java:1006
答案 0 :(得分:0)
您最好发布您的对象以及用于反序列化它的代码。此外,您可以尝试使用其他库:
杰克逊(更多或更少的标准库):http://www.mkyong.com/java/how-to-convert-java-object-to-from-json-jackson/