在 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 显示黄色标记的主要内容,如果未能解决你的问题,请参考以下文章
YamlDotNet 在 C# 中将 YAML 转换为 JSON