我正在嘗試處理有效的json的html正文中收到一個字符串。我收到的字符串是不是有效的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字符串?
編輯:IBM273和解碼通過IBM037工作正常,創建一個有效的json字符串,但仍包含一個小錯誤:字符'ö'是'|'在那編碼。
看起來你可能已經從蒸汽構建了你的'json'串使用錯誤的[編碼](https://msdn.microsoft.com/en-us/library/ms404377(v = vs.110).aspx)。正確的解決方法是使用正確的編碼。你是如何創建字符串的? – dbc
我從一箇舊的基於cobol的機器提供的網站正文獲得字符串 – Zoba
也許,可能與以下相關:https://stackoverflow.com/questions/36336493/c-sharp-cannot-create-ebcdic-file-on -unisys-mainframe-windows-share – dbc