2010-05-20 3 views
0

우리는 편안한 서비스를 위해 XStream을 사용하고 있습니다. 그러나 Xstream은 동일한 값을 가진 필드에 대해 다양한 결과를 제공합니다. 예약 객체를 가정 이것에 대한다른 결과를주는 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

위의 도서 인스턴스에는 오류가 있습니다. 이제

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

    public Book(){ 
    } 
} 

: 여기에 나는 그것이 어떻게 보일지 생각이야

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

당신이 위에 나열된 Book 개체에 대해 반환하는 것을 XStream을입니다 확실합니까? subject 속성이 String이고 String[] 또는 다른 유형의 컬렉션이 아니기 때문에 이것은 올바르게 보이지 않습니다.

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

    public Book(){ 
    } 
} 

결론 : 당신의 Book이 같은 모습하지 않는 한

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

: 당신이주는 첫 번째 예 (저자없이 책)에 대한 JSON 인코딩해야 할 있는지 당신은 당신의 주제를 선언하지 않습니다 컬렉션으로.

보너스 팁으로 질문에 작업 코드를 게시하십시오. 의미있는 대답을 얻는 것이 더 쉽습니다. 내 생각에 귀하의 Book 클래스가 어떤 종류의 컬렉션이 될 수 있다고 선언하는 것입니다.

+0

오타에 대한 미안 해요. 예 피사체가 단순한 문자열이라고 확신합니다. 실제로 실제 수업에는 몇 가지 공통점이 있으며이 문제는 다른 분야의 조합에서도 발생할 수 있습니다. 이로 인해 UI Javascript가 이러한 모든 미숙 한 결과를 관리하기 위해 모든 if 문으로 비대 해졌습니다. – Sean

관련 문제