大家好,我是零点博客的博主。最近在整理项目代码时,发现频繁需要校验和格式化 Json数据,手写解析实在太累,于是决定利用周末时间,用 C# 开发一个轻量级的在线 JSON 数据格式化工具。这里把开发过程中的底层逻辑、正则校验以及接口开发的细节复盘一下,希望能帮到正在做 EMLOG 主题或通用工具开发的站长。
一、需求分析与技术选型
这个工具不需要复杂的数据库,但需要处理高并发请求。考虑到后端生态的成熟度,我们选用 C# 配合 .NET Core。
核心功能点:
- 接收前端提交的字符串。
- 使用 C# 强大的库解析 Json数据。
- 利用正则表达式校验语法是否正确。
- 返回格式化后的 HTML 或纯文本。
二、C# 后端解析 Json 数据的核心逻辑
在接口开发中,处理用户输入的文本是家常便饭。为了确保稳定性,我们引入了 Newtonsoft.Json 库。
public class JsonToolController : Controller
{
public IActionResult FormatJson()
{
string rawJson = Request.Form["data"];
// 1. 正则校验 Json 字符串是否符合基本规范
if (!IsValidJson(rawJson))
{
return Json(new { error = "JSON 语法格式错误" });
}
try
{
// 2. 解析 Json 数据到 JObject
JObject obj = JObject.Parse(rawJson);
// 3. 转换回格式化后的字符串(缩进为 4 个空格)
string formatted = obj.ToString(Formatting.Indented);
return Content(formatted, "text/plain");
}
catch (Exception ex)
{
return Json(new { error = ex.Message });
}
}
}
三、正则表达式校验与爬虫开发思维
很多朋友问,怎么保证用户传的不是乱码?这时候正则表达式就派上用场了。虽然爬虫开发更多是用于抓取网页,但其中的数据清洗思维是通用的。
我们需要确保用户输入的是合法的 JSON 开头。正则可以这样写:
// 简单校验 Json 是否以 { 或 [ 开头
private bool IsValidJson(string strInput)
{
strInput = strInput.Trim();
return (strInput.StartsWith("{") || strInput.StartsWith("[") ||
strInput.StartsWith("\"")) && strInput.EndsWith("}") || strInput.EndsWith("]");
}
四、前端交互与 SQL 注入防护
前端使用原生 HTML/CSS/JS,通过 AJAX 请求后端接口。
很多新手在写 MySQL 数据交互时,习惯直接拼接 SQL 语句,这在 Web 开发中是大忌。虽然我们的工具目前不需要存入数据库,但如果未来打算将工具生成的代码存入 EMLOG 的数据库,请务必使用预处理语句。这就好比给数据库穿了一层防弹衣,能有效防止黑客进行 SQL注入。
五、实战避坑指南
- 字符编码问题: 解析 Json数据 时,切记设置 UTF-8 编码,否则中文会变成乱码。
- 异常捕获: 哪怕用了正则校验,
JObject.Parse依然可能抛出异常,必须包裹在 try-catch 中。 - XML 解析备选: 如果是处理接口对接,有时候对方给的是 XML 格式,这时候就需要结合 XML 解析,再转换为 JSON 供前端调用。
这套流程跑通后,不仅实现了工具开发,也让我对 C# 的类型系统有了更深的理解。源码已上传至零点博客,欢迎交流。



评论一下吧
取消回复