Я создаю динамический JSON с использованием ExpandoObject и IDictionary.
Мой пример кода выглядит следующим образом:
DataTable dt_MappedColumns = new DataTable();
dt_MappedColumns.Columns.Add("Sr.No");
dt_MappedColumns.Columns.Add("TColumnName");
dt_MappedColumns.Columns.Add("AColumnName");
dt_MappedColumns.Rows.Add("1", "Apple", "Lion");
dt_MappedColumns.Rows.Add("2", "Orange", "Tiger");
dt_MappedColumns.Rows.Add("3", "Mango", "Fox");
dt_MappedColumns.Rows.Add("4", "Orange", "Wolf");
var dictionary1 = new Dictionary<string, object>();
foreach (DataRow dr in dt_MappedColumns.Rows)
{
string key = dr["TColumnName"].ToString();
string value = dr["AColumnName"].ToString();
if (!dictionary1.ContainsKey(key))
{
// key does not already exist, so add it
dictionary1.Add(key, value);
}
else
{
// key exists, get the existing value
object existingValue = dictionary1[key];
if (existingValue is string)
{
// replace the existing string value with a list
dictionary1[key] = new List<string> { (string)existingValue, value };
}
else
{
// the existing value is a list, so just add the new value to it
((List<string>)existingValue).Add(value);
}
}
}
string Manjson = JsonConvert.SerializeObject(dictionary1);
Строка JSON, отображаемая таким образом, как показано ниже, с символом Escape {\}:
"{\" Apple \ ": \" Лев \ ", \" Оранжевый \ ": [\" Тигр \ ", \" Волк \ "], \" Манго \ ":\ "Fox \"} ".
Я хочу удалить символ Escape {\}, и требуемый JSON будет выглядеть следующим образом:
" {"Apple":"Лев", "Апельсин": ["Тигр", "Волк"], "Манго": "Лиса"} "
**** РЕДАКТИРОВАТЬ ****
Интересно, что если я печатаю JSON в консоли, он не содержит Escape-символов, но когда я вставляю в Oracle DB Table, он вставляется с Escape-символами.
Использование Visual Studio 2010 Professional с Oracle 11g и PL / SQL 11.2
Каким было бы решение для этого:
Любая помощь приветствуется:)