Во-первых, ваш экземпляр 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
класс объявляет предмет некоторой коллекции