Xml正在将动态字符串序列化为布尔值
本文关键字:序列化 布尔值 字符串 动态 Xml | 更新日期: 2023-09-27 18:00:51
下面是一个简单作业调度程序的实例,它将xml动态字符串解析为json:
XML
<Navigations>
<Navigation Name="facebook" Active ="0" ></Navigation>
</Navigations>
c#
List<NavigationData> nds = new List<NavigationData>();
foreach (object cnav in (IEnumerable)c.Navigations)
{
NavigationData nd = new NavigationData();
nd.Name = (string)((dynamic)cnav).Name;
nd.Active = XmlConvert.ToBoolean((string)((dynamic)cnav).Active); // 3
nds.Add(nd);
}
transitContent.NavigationData = JsonConvert.SerializeObject(nds);
上面的程序在第3行抛出一个异常:
无法使用
XMLConvert.ToBoolean
将字符串转换为布尔值无法使用
Convert.ToBoolean
识别字符串
在这种情况下可能有其他类型的转换吗?预期结果应该是:
JSON
[
{
"Name": "facebook",
"Active": false
}
]
List<NavigationData> nds = new List<NavigationData>();
foreach (dynamic cnav in (IEnumerable)c.Navigations)
{
NavigationData nd = new NavigationData();
nd.Name = cnav.Name;
nd.Active = cnav.Active != "0";
nds.Add(nd);
}
transitContent.NavigationData = JsonConvert.SerializeObject(nds);
这是假设cnav
将所有属性公开为字符串(作为它们的执行时间类型(。