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

详细介绍:.NET Framework中报错命名空间System.Text中不存在类型或命名空间名Json

.NET Framework中报错命名空间System.Text中不存在类型或命名空间名Json

严重性 代码 说明 项目 文件 行 禁止显示状态 错误 CS0234 命名空间“System.Text”中不存在类型或命名空间名“Json”(是否缺少程序集引用?) M3U8_Download F:\Merchant\merchant202501\autocookie\M3U8_Download\Form1.cs 84 活动

严重性 代码  说明  项目  文件  行 禁止显示状态
错误  CS0234  命名空间“System.Text”中不存在类型或命名空间名“Json”(是否缺少程序集引用?) M3U8_Download F:\Merchant\merchant202501\autocookie\M3U8_Download\Form1.cs  84  活动

原因分析

System.Text.Json.NET Core 3.0 及以上(包括 .NET 5、6、7、8、9 等)才内置提供的 JSON 序列化库。

如果你的项目是:

  • .NET Framework(如 .NET Framework 4.7.2、4.8 等), → 那么默认不包含System.Text.Json,会报这个错。

✅ 方案一:升级项目到 .NET 5+(推荐)

如果你可以更改项目目标框架:

  1. 右键项目 → 属性

  2. 目标框架 改为 .NET 6.NET 8 或更高(建议 .NET 8)

  3. 重新生成项目

这样 System.Text.Json 就可以直接使用,无需额外安装包。

✅ 方案二:在 .NET Framework 项目中使用 System.Text.Json(需手动安装 NuGet 包)

如果你必须使用 .NET Framework(比如 WinForms 旧项目),可以安装官方兼容包

// ExecuteScriptAsync 返回的是 JSON 格式的字符串 string jsonResult = await webView21.CoreWebView2.ExecuteScriptAsync(script); // 对于简单类型,可以直接去除引号 return System.Text.Json.JsonSerializer.Deserialize<string>(jsonResult); 不安装重新修改代码解析

✅ 解决方案:手动解析简单 JSON 字符串(无需任何额外库)

ExecuteScriptAsync 的返回规则如下:

  • 如果 JS 返回的是 字符串,结果是带双引号的 JSON 字符串,例如:"hello" → C# 得到 "\"hello\""

  • 如果 JS 返回的是 数字、布尔、null,结果是无引号的:42truenull

  • 如果是对象或数组,会返回完整 JSON,如 {"a":1}

对于 只返回简单字符串 的场景,你可以用 简单的字符串处理 来“去 JSON 化”,而不需要反序列化库。

情况 1:你确定 JS 返回的是 字符串
string jsonResult = await webView21.CoreWebView2.ExecuteScriptAsync(script);
​
// 去除首尾的双引号,并处理转义(简单场景)
if (!string.IsNullOrEmpty(jsonResult) && jsonResult.StartsWith("\"") && jsonResult.EndsWith("\""))
{   // 移除首尾引号,并将 \" 还原为 "   string unquoted = jsonResult.Substring(1, jsonResult.Length - 2)                                     .Replace("\\\"", "\"")                                     .Replace("\\\\", "\\");   return unquoted;
}
else if (jsonResult == "null")
{   return null;
}
else
{   // 不是字符串(比如返回了数字或布尔),直接返回原始内容   return jsonResult;
}

✅ 推荐:使用 .NET Framework 自带的 JavaScriptSerializer(无需安装任何包!)

.NET Framework 本身就内置了 System.Web.Script.Serialization.JavaScriptSerializer完全免费、无需 NuGet

示例代码:
using System.Web.Script.Serialization;
​
// ...
​
string jsonResult = await webView21.CoreWebView2.ExecuteScriptAsync(script);
​
var serializer = new JavaScriptSerializer();
// 如果 JS 返回的是字符串,jsonResult 是 "\"value\"",反序列化后得到 "value"
string result = serializer.Deserialize(jsonResult);
return result;
  • 是 .NET Framework 官方自带的类(虽然老旧,但够用)

注意:你需要添加对 System.Web.Extensions 程序集的引用(大多数 WinForms 项目默认已包含,如果没有):

  • 右键项目 → 添加引用 → 程序集 → 框架 → 勾选 System.Web.Extensions

http://www.gsyq.cn/news/164324.html

相关文章:

  • 如何为TensorFlow镜像配置持久化存储卷(Persistent Volume)
  • 基础练习6
  • 如何为TensorFlow镜像添加健康检查端点
  • 2025年黑龙江靠谱哑光地砖品牌排行榜,资深/实力厂家优选推荐 - 工业设备
  • 2025最新!专科生必看9款AI论文工具测评,毕业论文轻松过
  • Open-AutoGLM查看模型权重与结构的方法,开发者绝不能错过的调试技巧
  • 如何将TensorFlow镜像输出结果同步至对象存储服务
  • Java计算机毕设之基于springboot的湄潭县乡村茶产品管理系统设计与实现茶叶种植溯源、产品展示、订单管理、品牌推广、电商销售(完整前后端代码+说明文档+LW,调试定制等)
  • Open-AutoGLM常见故障排查手册,资深专家总结的12条黄金法则
  • Prometheus + Grafana监控TensorFlow镜像运行指标
  • 【毕业设计】基于springboot的湄潭县乡村茶产品管理系统设计与实现(源码+文档+远程调试,全bao定制等)
  • TMS320F28335主控下的EtherCAT伺服方案:包含TI DSP与FPGA源码及PD...
  • 最小化TensorFlow镜像:只为推理服务裁剪不必要的组件
  • 学术创作新纪元:书匠策AI科研工具解锁期刊论文写作全流程智能攻略
  • 别再熬夜赶问卷论文!9款AI神器20分钟生成10000字带真实参考文献
  • Java毕设项目:基于springboot的湄潭县乡村茶产品管理系统设计与实现(源码+文档,讲解、调试运行,定制等)
  • 科研新范式:书匠策AI如何重塑期刊论文写作生态链
  • 3个月500万:茶叶商创新营销模式揭秘
  • 【AutoGLM开源革命】:挑战OpenAI的5个关键技术突破及落地场景
  • 2026软件测试必背的常见的面试题(46道)
  • 岐金兰AI元人文构想:与社科网三篇文章的对话——从工具赋能到文明共生的范式跃迁
  • TensorFlow镜像崩溃了怎么办?日志排查全流程指引
  • RESTful接口设计:封装TensorFlow镜像为AI微服务
  • 【2026终极路线】系统攻克LLM大模型:从零到精通的四大硬核模块(微调/RAG/智能体/部署)一站掌握
  • (独家解析)Open-AutoGLM架构设计内幕:90%工程师不知道的5个关键模块
  • autodl环境配置Open-AutoGLM实战指南(从零到一键启动的完整路径)
  • 2025年12月重庆发电机租赁服务商最新推荐榜,渝中区、大渡口区、江北区、沙坪坝区、九龙坡区、南岸区、北碚区、渝北区发电机出租、聚焦企业服务品质与区域覆盖能力深度剖析 - 海棠依旧大
  • SQL 注入防护怎么做
  • 【Open-AutoGLM技术深度解密】:揭秘下一代自动化大模型推理引擎核心架构
  • 2025年AI已经进化到“灵魂出窍“级别,编程变“感觉“,小白程序员再不学就晚了!