Я получаю строку в html-модуле, которую я пытаюсь обработать в действительном json. Строка я получаю не является допустимой строка JSON и содержит следующую схему:фильтровать недопустимые значения в строке json
äÄ
"key1": " 10",
"key2": "beigef}gtem Zahlschein",
"key3": " G E L \ S C H T",
"key4": "M}nchen",
"key5": "M{rz",
"key6": "[huus"
Ü
ä
я написал функцию, чтобы заменить все неисправные символы, чтобы создать действительный JSON-строку, но как я сделать наоборот, не уничтожая буквы, необходимые в json?
Это, как я заменил символы:
private static string FixChars(string input)
{
if (!string.IsNullOrEmpty(input))
{
if (input.Contains("["))
{
input = input.Replace("[", "Ä");
}
if (input.Contains(@"\"))
{
input = input.Replace(@"\", "Ö");
}
if (input.Contains("]"))
{
input = input.Replace("]", "Ü");
}
if (input.Contains("{"))
{
input = input.Replace("{", "ä");
}
if (input.Contains("|"))
{
input = input.Replace("|", "ö");
}
if (input.Contains("}"))
{
input = input.Replace("}", "ü");
}
if (input.Contains("~"))
{
input = input.Replace("~", "ß");
}
//DS_Stern hat Probleme beim xml erstellen gemacht
//if (input.Contains("*"))
//{
// input = input.Replace("*", "Stern");
//}
}
return input;
}
Тогда я пытался десериализации JSON-массив в словарь, как это:
deserializedRequest = JsonConvert.DeserializeObject<Dictionary<string, string>[]>(json);
Как получить доступ к различным словарей , используйте мой метод FixChars для значений и повторно инициализируйте правильную json-строку из этого?
EDIT: IBM273 и декодирование через IBM037 прекрасно работает, чтобы создать допустимую строку json, но все еще содержит незначительную ошибку: символ 'ö' is '|' в этой кодировке.
Похоже, вы можете построили свой 'json' строку из пар используя неверную [кодировку] (https://msdn.microsoft.com/en-us/library/ms404377 (v = vs.110) .aspx). Правильное исправление заключается в использовании правильного кодирования. Как вы создали строку? – dbc
Я получаю строку из тела веб-сайта, предоставленного старой машиной на основе коболов – Zoba
Возможно, возможно, связанный: https://stackoverflow.com/questions/36336493/c-sharp-cannot-create-ebcdic-file-on -unisys-mainframe-windows-share – dbc