【问题标题】:Newtonsoft.json JSON.NETNewtonsoft.json JSON.NET
【发布时间】:2017-12-29 15:53:35
【问题描述】:

我找到了许多 JSON.NET 代码示例,但我无法让其中任何一个在 Visual Studio (C#) 中运行。这很可能是因为我在如何编码方面遗漏了一些明显的东西。

特别令人沮丧的是 newtonsoft.com 中的示例代码无法编译和运行。例如,http://www.newtonsoft.com/json/help/html/SerializeObject.htm 包含“类型”和“用法”的代码,但没有 using 语句,我不知道如何将代码放入项目中以使其工作。

我确定我错过了一些我无法弄清楚的基本内容。我已经在谷歌上搜索了三天的答案。你能帮帮我吗?

【问题讨论】:

  • 你没有给我们太多的东西。您是否在项目中添加了对 JSON.NET 的引用?
  • 示例代码适合我吗?您是否缺少 using Newtonsoft.Json; 声明或 nuget 包? docs.nuget.org/consume/package-manager-dialog
  • 您可以发布您尝试过的代码吗?并且可能是您的解决方案资源管理器的屏幕截图(references 节点已打开)
  • 在 Json.Net 文档页面 newtonsoft.com/json/help/html/Introduction.htm API 参考链接下列出了命名空间。您必须仔细查看它们,直到找到要使用的类。该类所属的命名空间将是您的 Using 语句中所需的命名空间。
  • 我将示例代码放入 .NET Fiddle,通过 nuget 添加 JSON.Net(这也是我在 Visual Studio 中的做法),使用 using 语句添加命名空间。 dotnetfiddle.net/gQPEE7 工作正常吗?

标签: c# json.net


【解决方案1】:

假设您已下载 Json.NET nuget 包(或以其他方式将 Newtonsoft 的包正确添加到您的项目并引用它),除了 Visual Studio 为您添加的标准语句之外,您需要的唯一使用语句是 Newtonsoft.Json

他们的代码在控制台应用程序类型的项目中运行得非常好,使用如下:

    using System;                      
    using System.Collections.Generic; 
    using Newtonsoft.Json;

您可能想做的唯一另一件事是添加一个 Console.ReadLine();最后,以便您可以看到输出。

【讨论】:

  • 哦,还有...如果您忘记将 Newtonsoft.Json 命名空间引入您的类,只要您的项目添加并引用了 Newtonsoft 库,您始终可以将光标放在 JsonConvert (红色下划线)并按 [Ctrl] + [.](句点),Visual Studio 会告诉您需要添加哪个命名空间。
  • 瑞恩,我仍然完全不知道如何做到这一点。你能告诉我如何读取 JSON 文件然后解析它吗?我完全迷路了。 :-(
  • 当然,一旦你引入 Newtonsoft.Json 命名空间,你就可以访问他们的转换器,那么它就像:MyObjectType someObject = JsonConvert.DeserializeObject(SomeJsonStringRepresentingMyObject);
【解决方案2】:

当我试图回答您的问题时,我创建了一个名为 CA_Json 的新 C# 控制台应用程序解决方案。

我右键单击名为“CA_Json”的项目并选择“管理 NuGet 包...”。
然后我选择了“Newtonsoft.JSON”并点击了“安装”按钮。
然后这个页面出现在http://www.newtonsoft.com/json/install?version=8.0.2 和 Newtonsoft.JSON 出现在参考下

所以我相信我已经成功添加了 JSON。

在 Program.cs 我添加了这个:
• 使用 Newtonsoft.Json;
• 类型的代码
• 和用法代码

我编译了它,然后开始调试,它工作了!

我回去检查了我之前的项目,不知何故 Newtonsoft.JSON 没有出现在引用下,即使我之前添加了它。

非常感谢!你的问题迫使我仔细检查我的工作并发现我的错误。 :-)

【讨论】:

    猜你喜欢
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 2020-02-16
    • 1970-01-01
    • 1970-01-01
    • 2017-05-05
    相关资源
    最近更新 更多