账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    JavaBean转json错误
    24
    0

    Document类:
    public class DocBean {
    private String docId;
    private String docName;
    private String typeId;
    private String typeName;
    private String content;
    private String docTime;
    private String views;
    private String cover;
    }

    page类
    public class Page {
    private int pageNo;
    private int totalItem;
    private int pageSize;
    private String typeId;
    private List<DocBean> doc=new ArrayList<DocBean>();
    }

    转化代码:
    JSONObject page_json=JSONObject.fromObject(page);

    error:
    net.sf.json.JSONException: There is a cycle in the hierarchy!

    at net.sf.json.util.CycleDetectionStrategy$StrictCycleDetectionStrategy.handleRepeatedReferenceAsObject(CycleDetectionStrategy.java:97)
    at net.sf.json.JSONObject._fromBean(JSONObject.java:833)
    at net.sf.json.JSONObject.fromObject(JSONObject.java:168)
    at net.sf.json.AbstractJSON._processValue(AbstractJSON.java:265)
    at net.sf.json.JSONObject._processValue(JSONObject.java:2808)
    at net.sf.json.JSONObject.processValue(JSONObject.java:2874)
    at net.sf.json.JSONObject.setInternal(JSONObject.java:2889)
    at net.sf.json.JSONObject.setValue(JSONObject.java:1577)
    at net.sf.json.JSONObject._fromBean(JSONObject.java:934)
    at net.sf.json.JSONObject.fromObject(JSONObject.java:168)
    at net.sf.json.JSONObject.fromObject(JSONObject.java:130)
    at hyit.dataBind.DocBind.initDocList(DocBind.java:124)
    at hyit.dataBind.DocBind.test01(DocBind.java:132)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
    
    
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 一晚八连杀 普通会员 1楼

      在Java中,如果你有一个JavaBean对象,并且想要将其转换为JSON格式,你可能会遇到一些问题。以下是一些可能的原因和解决方法:

      1. @JSON注解可能没有被正确地应用:如果你的JavaBean没有@JSON注解,那么你将无法将它转换为JSON。你需要确保你的JavaBean有一个@JSON注解,并且这个注解已经被正确地应用到你的JavaBean上。

      2. @JSON注解可能被错误地应用于对象:如果你的JavaBean是一个对象,但是你试图将它转换为JSON,那么你可能无法成功。你需要确保你的JavaBean是一个JSON对象,并且这个JSON对象被正确地应用到你的JavaBean上。

      3. @JSON注解可能已经被错误地删除:如果你的JavaBean没有@JSON注解,那么你可能无法成功。你需要确保你的JavaBean有一个@JSON注解,并且这个注解已经被正确地删除。

      4. JSON字符串可能不是有效的JSON格式:如果你的JSON字符串不是有效的JSON格式,那么你将无法将其转换为JSON。你需要确保你的JSON字符串是一个有效的JSON字符串,并且这个JSON字符串被正确地应用到你的JavaBean上。

      解决这些问题的一种方法是使用Java的org.json.JSONObject类,它可以将Java对象转换为JSON字符串。如果你的JavaBean没有@JSON注解,你可以使用JSONObject类的put方法来添加JSON键值对。如果你的JavaBean是一个对象,你可以使用JSONObject类的putAll方法来添加JSON对象。如果你的JavaBean没有@JSON注解,你可以使用JSONObject类的put方法来添加JSON键值对,然后使用put方法来添加JSON对象。如果你的JSON字符串不是有效的JSON格式,你可以使用JSONObject类的put方法来添加JSON键值对,然后使用put方法来添加JSON对象,然后使用put方法来添加JSON键值对。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部