我们正在使用XStream来提供宁静的服务。但是,Xstream为具有相同值的字段提供了不同的结果。 假设它是Book对象:
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 :(得分: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
课程声称可以成为某种集合