0

私のXML:

<autocomplete>
  <url_template>http://api-public.netflix.com/catalog/titles/autocomplete?{-join|&amp;|term}</url_template>
  <autocomplete_item>
    <title short="Star Wars: Episode V: The Empire Strikes Back: Original Theatrical Version"></title>
  </autocomplete_item>
</autocomplete>

私のオブジェクト:

public class AutoCompleteList
{
public String url_template;
public List<AutocompleteItem> autocomplete_item;
}

public class AutocompleteItem
{
public Title title;
}

public class Title
{
@XStreamAlias("short")
public String Short;
}

私のコード:

XStream xstream = new XStream();
xstream.alias("autocomplete", AutoCompleteList.class);
xstream.alias("title", Title.class);
AutoCompleteList myObj = (AutoCompleteList)xstream.fromXML(stringFromStream);

XML から「短いタイトル」の値を取得できません。

また、XML に autocomplete_item タグのセットが複数ある場合、xstream は autocomplete_item のインスタンスが重複しているとエラーを出します。

助言がありますか?

ここで多くの質問を検索しましたが、何もうまくいかないようでした。

4

1 に答える 1

0

属性については、注釈shortを追加してみてください。@XStreamAsAttribute

public class Title
{
  @XStreamAlias("short")
  @XStreamAsAttribute
  public String Short;
}

と電話xstream.processAnnotations(Title.class)する前に電話してくださいfromXML

複数のautocomplete_item問題については、使用する必要があります@XStreamImplicit

public class AutoCompleteList
{
  public String url_template;

  @XStreamImplicit(itemFieldName="autocomplete_item")
  public List<AutocompleteItem> autocomplete_item;
}

ここでも、 を呼び出すxstream.processAnnotations(AutoCompleteList.class)前に、XStream に注釈を読み取るようにを呼び出す必要がありますfromXML

于 2012-10-13T23:37:25.460 に答える