将JSON字符串粘贴到Visual Studio中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将JSON字符串粘贴到Visual Studio中相关的知识,希望对你有一定的参考价值。

我在Visual Studio中使用从我的数据库复制的JSON字符串运行一些C#单元测试,例如:

{ 
    "key" : "Foo", 
    "format" : "Bar"
}

我想在我的代码中将JSON字符串解析为JObject:

 JObject.Parse(
    "{ 
        "key" : "Foo", 
        "format" : "Bar"
    }");

但是,我不能这样做,因为Visual Studio不会转义字符串中的引号。

我知道我可以添加转义字符,但是,字符串可能很长,这意味着手动添加转义字符需要很长时间。

将复制的JSON字符串解析为JObject的最简单方法是什么?

答案

通过用@附加字符串来使用逐字字符串文字(MSDN)。然后用双引号(“”)替换引号(“)

这比使用反斜杠转义引号更具可读性。

JObject.Parse(
@"{ 
    ""key"" : ""Foo"", 
    ""format"" : ""Bar""
}");
另一答案

对于我使用大量JSON的测试,我喜欢将它们存储在嵌入到项目DLL中的“.json”文件中。

请注意,您需要使用System.Reflection才能工作。

public string GetFileFromManifest(string path){
    using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(path))
    {
        stream.Position = 0;

        using (var streamReader = new StreamReader(stream))
        {
            return streamReader.ReadToEnd();
        }
    }

}

使用DLL路径调用,即:

GetFileFromManifest("The.Name.Of.The.Dll.FolderNameOfEmbeddedFiles.Filename.json");

GetManifestResourceStream的文档:https://msdn.microsoft.com/en-us/library/xc4235zt(v=vs.110).aspx

此外,您可以将JObject.Parse添加到此方法或创建一个新方法以将其作为JSON。

另一答案

粘贴,突出显示选择,查找和替换“for”

另一答案

将JSON放在某个目录(例如TestData/data.json)中的专用.json文件中,并将文件内容作为字符串加载。确保将data.json的文件属性设置为Copy to output directory

// File Loader

public static class ReadJsonFile
{
    public static string GetFileFromDisk(string path)
    {
        var absPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
        return File.ReadAllText(absPath + path);
    }
}



// Call the loader
var resultString = ReadJsonFile.GetFileFromDisk("/TestData/data.json");
JObject.Parse(resultString);

这样更干净,可以避免与大型JSON字符串混在一起。这可能是一种痛苦。

另一答案

ReSharper无缝地完成它,但当然,它需要花钱。

还有一个免费的VS扩展,可以这样做:https://marketplace.visualstudio.com/items?itemName=martinw.SmartPaster2013

以上是关于将JSON字符串粘贴到Visual Studio中的主要内容,如果未能解决你的问题,请参考以下文章

将 Visual Studio 的开发人员命令提示符添加到 Windows 终端?

如何使用 Visual Studio 或 Resharper(或任何其他工具!)将 HTML 正确粘贴到 C# 代码中?

在粘贴时,Visual Studio 2015将单词转换为空格

Visual Studio 2019 未将引用的项目添加到 deps.json

Json或XML快速反序列化类(Visual Studio 2012以上)

如何将 tsconfig.json 文件添加到 Visual Studio 2015 项目以获取编译器选项?