在 C# 中将字符串转换为 json 格式。 Newtonsoft.json 显示黄色标记

Posted

技术标签:

【中文标题】在 C# 中将字符串转换为 json 格式。 Newtonsoft.json 显示黄色标记【英文标题】:convert string to json format in C# . Newtonsoft.json showing yellow mark 【发布时间】:2019-05-29 19:06:14 【问题描述】:

我是 SSIS 的新手。我正在尝试将字符串转换为 JSON 格式,如图所示。我安装了 Newtonsoft Json。但它显示黄色三角形标记。

我已经安装了 Newtonsoft 的所有版本。但它仍然显示错误#

region Namespaces
using Newtonsoft.Json.Linq;
using System;
using System.Windows.Forms;#
endregion

namespace ST_9a0af2e4537b4d26adaef11149343faa 

 public partial class ScriptMain: Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase 



  public void Main() 


   var myJsonString = "report: Id: \"aaakkj98898983\"";
   MessageBox.Show(myJsonString);

   try 
    // when i add this line to my package then the package is not 
    excuting.if i remove this line then package is excuting.
    JObject.Parse("report: \"Id\": \"aaakkj98898983\"");
    catch (Exception e) 
    MessageBox.Show(e.ToString());
   




   Dts.TaskResult = (int) ScriptResults.Success;
  

 

脚本任务。我的 IDE 版本是 Visual Studio 2015 Professional。

安装 Newtonsoft 后不显示。当我关闭脚本任务弹出窗口并再次打开脚本任务编辑器时,它显示黄色感叹号,当我选择 Newtonsoft 包并检查属性时,它的路径和版本显示 0.0.0.0。然后我下载了 Newtonsoft 包并引用 newtonsoft.json.dll 文件添加引用。然后显示路径和版本。

但是当我运行包时它显示错误。

我也按照文章尝试过,但没有成功。

Convert JSON String to JSON Object c# https://www.c-sharpcorner.com/article/json-serialization-and-deserialization-in-c-sharp/ https://www.newtonsoft.com/json/help/html/M_Newtonsoft_Json_Linq_JObject_Parse.htm https://www.nuget.org/packages/System.Json/ How to parse JSON without JSON.NET library? Json does not exist in the namespace System Parse JSON string using C# script in SSIS https://docs.microsoft.com/en-us/nuget/quickstart/install-and-use-a-package-in-visual-studio https://www.dotnetjalps.com/2014/04/converting-csharp-object-json-string.html Cannot find javascriptSerializer in .Net 4.0

https://riptutorial.com/json-net/topic/1861/getting-started-with-json-net http://www.rockprogrammer.com/2017/08/how-to-install-json-.net-in-visual-studio-2015.htmls

谁能帮我解决这个问题?

谢谢 希夫罗伊

【问题讨论】:

您的解决方案中是否有多个项目? 你遇到了什么错误? 在参考属性中,CopyLocal 是否设置为 True of False? CopyLocal 表示将引用的 dll 复制到程序集的输出构建位置。如果它不存在,这可能会导致代码编译成功(因为 Visual Studio 引用 dll)但在运行时失败(因为 dll 在需要加载的时刻不存在)。 您在使用 NuGet 包管理器吗?如果不是:从您的项目中完全删除 Newtonsoft(两个文件 + 您可能拥有的任何引用),然后转到 your solution -> Manage NuGet Packages For Solution,找到 Newtonsoft.Json 并添加最新版本它给需要它的项目。 【参考方案1】:

可能很少有对 Newtonsoft.Json 的引用(例如,您的程序集之一也可能引用指定的版本)。

要检查您是否可以使用 AsmSpy 工具通过以下命令检查程序集引用:

AsmSpy "Here is the path to your bin directory"

请在此处阅读有关 AsmSpy 的更多详细信息:https://github.com/mikehadlow/AsmSpy

这可能有助于分析您的参考文献有什么问题

【讨论】:

【参考方案2】:

感谢大家。

最后我能够通过流动来解决问题 Joost van Rossum 文章。感谢 Joost van Rossum

将程序集添加到 GAC 在我们可以使用我们的程序集之前,我们必须将它添加到全局程序集缓存 (GAC)。再次打开 Visual Studio 2008 命令提示符(对于 Vista/Windows7/等,以管理员身份打开)。并执行以下命令。 gacutil /i d:\myMethodsForSSIS\myMethodsForSSIS\bin\Release\myMethodsForSSIS.dll

更多信息请阅读这篇文章 http://microsoft-ssis.blogspot.com/2011/05/referencing-custom-assembly-inside.html https://social.msdn.microsoft.com/Forums/sqlserver/en-US/d70cac36-6aa5-42cb-89a8-1a24cb5a0cad/cant-find-external-dll-reference-in-ssis-2012-script-task?forum=sqlintegrationservices

【讨论】:

以上是关于在 C# 中将字符串转换为 json 格式。 Newtonsoft.json 显示黄色标记的主要内容,如果未能解决你的问题,请参考以下文章

在c#中将简单的json转换为字符串数组

如何在 C# 中将 .json 文件转换为字符串 [重复]

YamlDotNet 在 C# 中将 YAML 转换为 JSON

在 C# 中将 JSON 数组转换为 XML

在 c# 中将时间字符串转换为不同的 DateTime 格式 [关闭]

如何在 .Net / C# 中将日期转换为 HTTP 格式的日期