当前位置: 首页 > news >正文

.net core接收对方传递的body体里的json并反序列化

1、首先我在通用程序里有一个可以接收对象型和数组型json串的反序列化方法

public static async Task<Dictionary<string, string>> AllParameters(this HttpRequest request)
{
Dictionary<string, string> parameters = QueryParameters(request);

            request.EnableBuffering();

            using (StreamReader stream = new(request.Body, Encoding.UTF8, leaveOpen: true))
{
string content = await stream.ReadToEndAsync();
request.Body.Position = 0;

                if (!string.IsNullOrWhiteSpace(content))
{
try
{
// 去除 BOM
content = content.Trim('\uFEFF');
// 去除所有 \u00A0(不间断空格)
content = content.Replace("\u00A0", "");
// 可选:去除所有不可见空白字符
content = Regex.Replace(content, @"[\u200B-\u200D\uFEFF]", "");

                        string trimmed = content.TrimStart();
if (!(trimmed.StartsWith("{") || trimmed.StartsWith("[")))
throw new Exception("请求体不是合法的 JSON 格式。");

                        var node = JsonNode.Parse(content);
if (node is JsonObject obj)
{
foreach (KeyValuePair<string, JsonNode?> item in obj)
{
if (string.Compare(item.Key, "cmd", true) == 0)
continue;

                                parameters.AddOrUpdate(item.Key, item.Value?.ToString());
}
}
else if (node is JsonArray arr)
{
parameters.AddOrUpdate("array", arr.ToJsonString());
}
else
{
throw new Exception("不支持的 JSON 类型: " + node?.GetType().Name);
}
}
catch (Exception ex)
{
throw new Exception("解析 JSON 失败,原始内容: " + content, ex);
}
}
}

            return parameters;
}
}
}

2、其次我在我的接口程序里引用了以上程序的dll,然后我就可以用它了

 public string ReceiveData([FromBody] List<OrgModel> array, [FromQuery] string model, [FromQuery] bool? dict=null)

{

  string code=“”;

  string name=“”;

    foreach (var zzData in array)

  {

      code=zzData.CODE;

      name=zzData.NAME;

  }

return "{code:"+code+"name:"+name+"}";

}

http://www.dtcms.com/a/294713.html

相关文章:

  • 设计汽车集群电源
  • 3️⃣循环速览
  • rust嵌入式开发零基础入门教程(二)
  • 微算法科技(NASDAQ: MLGO)研究量子机器学习算法 (Quantum Machine Learning Algorithms),加速机器学习任务
  • 性能优化:Vue 3 `v-memo` 指令详解
  • 零工合规挑战:盖雅以智能安全体系重构企业用工风控
  • 漏洞扫描系列03:导出PDF/HTML报告
  • 《WebGL与Three.js打造会“讲故事“的虚拟博物馆》
  • 2.1 为什么定义tensor数据结构?
  • 宜搜科技与绿地金创考察香港数码港 共探数字科技与RWA领域战略机遇
  • 【Vue3】加载高德地图案例
  • LFU算法及优化
  • 电科金仓推出AI融合数据库,开启国产数据库新时代
  • Python 程序设计讲义(5):Python 的基本用法——数据的输入与输出
  • 【网络工程师软考版】网络互联设备、网络层协议IP和ICMP
  • Draw.io v28.0.6 中文绿色版:免费流程图制作工具
  • zabbix监控MySQL数据库
  • 如何让RAGFLow每次知识检索都是返回知识库中的所有文档?
  • HTTPS证书体系,证书加密流程(通信体系)
  • C/C++中的内存管理
  • 分布式事务中的2PC和 3PC
  • 无货源电商亚马逊采购指南:硬件隔离与支付风控实操
  • 多模态融合模型迎来新突破!
  • SAP-ABAP:SAP的MB_MIGO_BADI技术架构及增强详解
  • 代码随想录day23回溯算法2
  • 有关Kubernetes技术的学习
  • RDB和AOF的写回策略分别是什么?
  • 超表面设计参数复杂难优化?OAS光学软件专业方案来破局
  • 开源UI生态掘金:从Ant Design二次开发到行业专属组件的技术变现
  • Hexo - 免费搭建个人博客06 - 安装、切换主题Butterfly