2010-05-20 83 views
0

我们正在使用XStream来提供我们宁静的服务。但是,Xstream为具有相同值的字段提供了不同的结果。 假设它的Book对象:Xstream给出不同的结果

public class Book{ 
public String name "myName"; 
public Listauthors = new List(); 
public String subject "mySubject"; 

public Book(){ 
} 
}

JSON的这个是:

{"Book":{"name":"myName", "authors":"", "subject":["mySubject"]}}

但是,如果我添加作者在收集我得到不同的结果。

{"Book":{"name":"myName", "authors":["author1","author2","author3"],"subject":"mySubject"}}

有没有人遇到过这个问题,并知道解决方案?

回答

0

首先,上面的Book实例包含错误。这里就是我想应该是这样的:

public class Book{ 
    public String name = "myName"; 
    public List authors = new ArrayList(); 
    public String subject = "mySubject"; 

    public Book(){ 
    } 
} 

现在:

{"Book":{"name":"myName", "authors":"", "subject":["mySubject"]}} 

你确定这是什么XStream有返回上面列出的Book对象?这看起来不正确,因为subject属性是String而不是String[]或其他类型的集合。你给第一个例子(本没有书的作者)的JSON编码应为:

{"Book":{"name":"myName", "authors":"", "subject":"mySubject"}} 

除非你Book看起来是这样的:

public class Book{ 
    public String name = "myName"; 
    public List authors = new List(); 
    public String[] subject = {"mySubject"}; 

    public Book(){ 
    } 
} 

底线:确保你不报你的主题作为一个集合。

作为奖励提示,请尝试在您的问题上发布工作代码。获得有意义答案的方式更容易。 所以我的猜测是,你的Book类声明是某种集合

+0

对不起,错字的pojo。 是的,我确定这个主题是一个简单的字符串。实际上,真正的课程有几个想法,而其他的领域组合也会遇到同样的问题。这导致UI Javascript会因所有if语句而臃肿,以管理这些疯狂的结果。 – Sean 2010-05-20 22:40:13

相关问题