用c sharp写一个json字符串校验功能,要求:自动替换或去除所有json无法识别的字符
时间: 2023-05-24 16:04:14 浏览: 92
以下是用C#编写的JSON字符串校验功能,该函数将阻止包含不可识别字符的JSON字符串,并返回清除不可识别字符的JSON字符串。
```csharp
using System;
using System.Text.RegularExpressions;
public class JSONValidator
{
public static bool IsValidJson(string jsonString)
{
if (string.IsNullOrEmpty(jsonString))
return false;
bool isValid = true;
// 去除json字符串中的注释
jsonString = Regex.Replace(jsonString, @"(\/\*([\s\S]*?)\*\/)|(\/\/(.*)$)", "", RegexOptions.Multiline);
try
{
Newtonsoft.Json.Linq.JToken.Parse(jsonString);
}
catch (Exception)
{
isValid = false;
}
return isValid;
}
public static string RemoveUnrecognizableChars(string jsonString)
{
// 去除json字符串中的注释
jsonString = Regex.Replace(jsonString, @"(\/\*([\s\S]*?)\*\/)|(\/\/(.*)$)", "", RegexOptions.Multiline);
// 去除json字符串中不可识别的字符
jsonString = jsonString.Replace("\r", "").Replace("\n", "").Replace("\t", "").Replace("\f", "").Replace("\b", "");
jsonString = Regex.Replace(jsonString, @"[^ -~]", "");
return jsonString;
}
}
```
使用示例:
```csharp
string jsonString = @"{""name"": ""JSON Validator"", ""version"": 1.0, ""description"": ""A C# JSON Validator with unrecognizable characters removal.""}";
if (JSONValidator.IsValidJson(jsonString))
{
Console.WriteLine("Valid JSON");
}
else
{
Console.WriteLine("Invalid JSON");
}
string cleanedJsonString = JSONValidator.RemoveUnrecognizableChars(jsonString);
Console.WriteLine("Cleaned JSON:\n " + cleanedJsonString);
```