前言:在 EMLOG 之外拓展技术边界

大家好,我是零点博客的博主。平时写博客主要用 EMLOG,但最近在后端开发这块琢磨出一个新活儿——给博客加一个JSON 在线解析工具。很多人觉得后端开发就是 CRUD(增删改查),其实不然,如何处理复杂的JSON/XML 数据解析,以及如何保证接口安全,才是进阶的关键。今天就把这个从零到一的开发复盘分享出来,不讲虚的,全是干货。

一、 项目背景与需求分析

我们的目标是做一个在线工具开发的微服务。用户输入一段乱码 JSON,我们通过C# 后端解析、格式化,再返回给前端。

  • 后端语言: C# (ASP.NET Core Web API)
  • 数据库: MySQL(用于存储热门格式化案例或统计)
  • 核心难点: 错误处理、性能优化以及SQL 注入防护。

二、 C# 后端核心逻辑与 SQL 防护

在接收 JSON 请求时,很多新手会直接拼接 SQL,这是大忌。在MySQL数据库操作中,我使用了预处理语句。

比如,我们要记录用户这次解析用了多久,或者保存了什么关键词,千万不能写这种硬编码的 SQL:

string sql = "INSERT INTO logs (keyword) VALUES ('" + userKeyword + "')";

这是典型错误!一旦用户输入 `' OR 1=1 --`,你的库就崩了。正确的做法是:

using (var cmd = new MySqlCommand("INSERT INTO logs (keyword, created_at) VALUES (@keyword, @time)", conn))
{
    cmd.Parameters.AddWithValue("@keyword", userKeyword);
    cmd.Parameters.AddWithValue("@time", DateTime.Now);
    cmd.ExecuteNonQuery();
}

这样,无论用户输入什么,数据库引擎都会把它当作普通字符串处理,彻底解决SQL注入防护问题。

三、 JSON 数据处理与正则表达式的结合

C# 自带的 System.Text.Json 库非常好用。我写了一个方法来处理可能存在的异常嵌套结构。

有时候爬虫开发抓取的数据格式不统一,我还会配合正则表达式清洗一下数据,确保传给数据库的 JSON 字符串是合法的。比如提取出字符串中的 UUID,或者清理掉多余的换行符。

四、 前端交互与避坑指南

前端方面,直接写原生 HTML/CSS/JS 其实最灵活。我遇到过一个坑:当 JSON 数据量过大时,C# 返回的数据被截断了。

避坑指南:

  1. 数据传输: 在 WebAPI 控制器返回数据时,加上 [ResponseCache(Duration = 10)] 避免重复计算。
  2. 序列化: 设置 JsonSerializerOptions` { WriteIndented = true },让格式化后的 JSON 漂亮易读。

五、 源码与总结

源码我已经打包上传到零点博客了,大家可以直接复制去用。这套方案完全兼容 PHP 后端开发常用的 JSON/XML 解析逻辑,如果你是从 PHP 转 C# 的,应该会觉得挺亲切的。

后端开发不只是写代码,更是写逻辑、写安全、写可维护性。希望这篇复盘能帮到正在学习 C# 的你!