我正在使用JSON.Net更新XML文件中的对象。这太棒了!然而,我需要更新一个包含一些特殊字符的属性,并且我找不到任何关于如何使用JSON.Net.执行此操作的信息
XML
<ProfileSettings>{
"Name": "Default",
"Status": "New",
"DeploymentVariants": {
"SPSite": {
"Signature": "SPSite",
"Type": "SPSite",
"Label": "SharePoint Site",
"Source": "Solution",
"DefaultValue": "http://google.com",
"Value": "http://google.com"
},
"Process/Participant[@Name="Manager"]>User": {
"Signature": "Process/Participant[@Name="Manager"]>User",
"Type": "SPUser",
"Label": "User for swim lane Manager",
"Source": "Swimlane",
"DefaultValue": "John Smith",
"Value": "John Smith"
}
},
"DeploymentScripts": {},
"SPList": "mySPList"
}</DeploymentProfile>
为了更新SPSite对象中的DefaultValue,我可以像这样使用JSON.Net:
dynamic fromSolution = JsonConvert.DeserializeObject(profileObject);
fromSolution.DeploymentVariants.SPSite.DefaultValue = txtSPSite.Text;
但是,如果我试图访问进程/参与者[@Name=\"Manager\"]>用户对象。如果一处房产有像这样的特殊字符,我该如何访问它?
fromSolution.DeploymentVariants.Process.DefaultValue
不起作用,显然在其中包含特殊的字符只会导致运行时错误。
JObject
实现IDictionary<string, object>
。您可以使用字典语法:
fromSolution.DeploymentVariants["Process/Participant[@Name="Manager"]>User"].DefaultValue