2016-05-11 3 views
0

Это структура JSON я не могу контролировать:Как создать бит из данных JSON?

{ 
    "items":[ 
     { 
     "rating":5.4, 
     "count":10 
     }, 
     { 
     "rating":4.4, 
     "count":13 
     } 
     //repeat... 
    ] 
} 

Я пытаюсь генерировать XSD из него, а затем автоматической генерации класса Java с помощью xsd2java.

Это то, что я пробовал:

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="list"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="items"> 
       <xs:complexType> 
        <xs:sequence> 
        <xs:element type="xs:int" name="rating"/> 
        <xs:element type="xs:int" name="count"/> 
        </xs:sequence> 
       </xs:complexType> 
    </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 

Какие результаты в:

@XmlRootElement("list") 
@XmlAccessorType(XmlAccessType.FIELD) 
public class MyDTO { 
    MyDTO.Items items; 

    @XmlAccessorType(XmlAccessType.FIELD) 
    public static class Items { 
     private int rating; 
     private int count; 
    } 
} 

НО: это не правильно: items должен быть List<Items>. Что я делаю неправильно?

ответ

-1

Вы должны указать maxOccurs = "неограниченный" (или неотрицательное число). , например.

<xs:complexType> 
    <xs:sequence maxOccurs="unbounded"> 
     .... 
    </xs:sequence> 
</xs:complexType> 

см http://www.w3schools.com/xml/el_sequence.asp для получения дополнительной информации

+1

мне пришлось добавить 'unbound' к:' <хз: Имя элемента = "пункты" MaxOccurs = "неограниченная"> '. Но кроме этого спасибо за намек! – membersound

Смежные вопросы