我目前正在序列化以下对象。
“记录”是一个字符串数组,其中包含特殊字符,例如>,<,&等
记录中的第一个索引是“ <”,这是一个xml特殊字符,并转换为“&lt”;通过SecurityElement.Escape(record [x]);。
之后,当我尝试使用HttpUtility.JavaScriptStringEncode对其进行转义时,将其转换为\ u0026lt。
var result = new Dictionary<string, string>();
string[] record = { "<", ">", "John & James" };
for (int x = 0; x < record.Length; x++)
{
string xmlEscaped = SecurityElement.Escape(record[x]);
result.Add($"F{235}_{"Property"}{x + 1}", HttpUtility.JavaScriptStringEncode(xmlEscaped));
}
string json= JsonConvert.SerializeObject(result);
并且json的结果是
{“ F235_Property1”:“ \ u0026lt;”,“ F235_Property2”:“ \ u0026gt;”,“ F235_Property3”:“ John \ u0026amp; James”}
当我反序列化相同的json时,我使用
var jsonConverted = JsonConvert.DeserializeObject(json);
但是反序列化之后,转换后的特殊字符不会转换回原始字符。 示例-\ u0026lt不会转换回“&lt”;
请帮助我解决这个问题。 预先感谢。
答案 0 :(得分:0)
将json序列化为字典,然后对序列化后的键值对中的每个值进行序列化之前的操作。