Я пытаюсь преобразовать Xml в Json и запустить некоторую бизнес-логику, а затем Deserialize в объект C#, используя Newtonsoft Json.Net. Xml имеет значения CData. Как я могу десериализовать Json таким образом, чтобы получить значение внутри CData, сопоставленного с полем C#.Обработка CData при преобразовании Xml в Json с использованием Newtonsoft
EDIT: XML может /, могут не содержать CDATA
Е.Г. Xml:
С CDATA
<?xml version="1.0" encoding="UTF-8"?> <root> <text><![CDATA[Sample Text]]></text> </root>
С открытым текстом
<?xml version="1.0" encoding="UTF-8"?> <root> <text>Sample Text></text> </root>
Json:
С CDATA:
{"text":{"#cdata-section":"Sample Text"}}
С текстом:
{"text":"Sample Text"}
Код:
class Data
{
[JsonProperty("text")]
public string Text { get; set; }
}
public static Data ConvertJsonToObject(string json)
{
return JsonConvert.DeserializeObject<Data>(json);
}
Спасибо заранее.
Спасибо за Андрея за ответ. Проблема здесь в том, что поле может содержать или не содержать CData. В одном xml поле может иметь CData, а в другом xml поле может иметь простой текст, решение должно работать для обоих случаев. (Прошу прощения, я пропустил упоминать эту информацию в вопросе) – Kaushik