在C#脚本中使用JSON.NET库

时间:2019-02-28 16:19:01

标签: c# .net json json.net

我有一个程序将.cs脚本文件作为输入。我想从脚本中的JSON文件中读取内容,并且尝试使用JSON.NET库来执行此操作。但是,我无法正确引用dll文件来使用其中的功能。 我没有使用Visual Studio编写脚本,因此无法使用常规方法添加引用。

我的代码:

//css_reference Newtonsoft.Json.dll;
using Newtonsoft;
using Newtonsoft.Json;
using Newtonsoft.Json.JsonConvert;
public class Script
{
    public async void Action(String path)
    {
        StreamReader re = new StreamReader("job.json");
        JsonTextReader reader = new JsonTextReader(re);
        JsonSerializer se = new JsonSerializer();
        object parsedData = se.Deserialize(reader);

与Newtonsoft库相关的三个文件是.dll文件,.pdb文件和.Json文件,所有这三个文件都与脚本文件放在同一文件夹中。

错误:

  

在...中找不到命名空间Newtonsoft

     

命名空间Newteonsoft.Json在...中找不到

如果我删除了三个using语句,则会得到找不到StreamReader,JsonTextReaader和JsonSerializer的名称空间。

关于此问题,我需要帮助。谢谢!

3 个答案:

答案 0 :(得分:1)

对我来说,解决方案是在文件顶部使用css_nuget,如下所示:

.env

答案 1 :(得分:0)

从您发布的内容来看,您好像已经手动安装了JSON.NET,我建议您通过NuGet进行安装,这样您的项目在安装过程中应该具有对dll集合的引用。我已经在.Net Framework和.Net Core项目中使用JSON.NET了很多次,这就是我始终安装它而从未遇到问题的方式。

答案 2 :(得分:0)

在脚本中,您需要使用System.Reflection.Assembly.Load()为JSON.net加载程序集。然后,您应该能够使用反射来创建JSON.net类的实例并在其上调用方法。如果将此与动态运行时结合使用,则应该能够实例化对象并使用它们。