簡體   English   中英

Xml反序列化ValueRequiredException

[英]Xml deserialization ValueRequiredException

我正在反序列化一個Xml文件,它是:

<?xml version="1.0" encoding="utf-8"?>
<UserList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <UserLists>
    <user>
      <username>Salesman1</username>
      <password>123</password>
      <salesmanId>4</salesmanId>
    </user>
  </UserLists>
</UserList>

用這行拋出異常:

org.simpleframework.xml.core.ValueRequiredException: Unable to satisfy @org.simpleframework.xml.ElementList(data=false, empty=true, entry=user, inline=true, name=, required=true, type=void) on field 'user' public java.util.List azdad.pos.android.UserList.user for class azdad.pos.android.UserList at line 2

我的實體類是:

import java.util.List;

import org.simpleframework.xml.Element;
import org.simpleframework.xml.ElementList;
import org.simpleframework.xml.Path;
import org.simpleframework.xml.Root;

@Root(name="UserList",strict=false)

public class UserList{


     @ElementList(entry="user", inline=true)
     public List<UserInfo> user;

     public List<UserInfo> getUsrs(){
         return user;
     }
}

我用過

嚴格

忽略標簽根據此鏈接:

如何在反序列化文檔時忽略未使用的XML元素?

但它不起作用,有人知道我怎么能忽略 deserializng的標簽

我相信你要忽略的是<UserLists>標簽對嗎? 您的問題來自使用inline屬性(請參閱簡單XML內聯 ),您需要使用:

@Root(name="UserList")
public class UserList{


    @ElementList(name="UserLists", entry="user")
    public List<UserInfo> user;

    public List<UserInfo> getUsers(){
        return user;
    }
}

那時不應該需要strict屬性。

注意:我更正了getUsers()的語法錯誤:因為Simple使用反射,這可能很重要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM