使用JSON.NET将XML转换为JSON

本文关键字:JSON 转换 XML NET 使用 | 更新日期: 2023-09-27 17:59:46

我有一个XML格式不好,但需要使用:

<Users>
<User First="aaa" Second="bbb">InnerValue</User>
<User First="bbb" Second="">InnerValue</User>
</Users>

冲突定义:

public class Users
    {            
        public List<User> User{ get; set; }
    }
 public class User
    {        
        [JsonProperty("@First")]
        public string First{ get; set; }
        [JsonProperty("@Second")]
        public string Second{ get; set; }
        //how to define a property to get the InnerValue
    }

要解析:

XDocument xmlDocument = XDocument.Parse(xmlData);
string jsonData = JsonConvert.SerializeXNode(xmlDocument);
Users users = JsonConvert.DeserializeObject<Users>(jsonData);

所以所有的东西都被很好地反序列化了,但是如何获得内部值呢?

使用JSON.NET将XML转换为JSON

要获得内部值,必须使用[JsonProperty("#text")]以便更新:

public class User
    {        
        [JsonProperty("@First")]
        public string First{ get; set; }
        [JsonProperty("@Second")]
        public string Second{ get; set; }
        [JsonProperty("#text")]
        public string InnerValue { get; set; }
    }