我有一个字符串,其中包含特殊字符{,[,..如下:
"[{"name":"print","next":"null","proc":"printproc","func":"null"}]"
要将常量字符串赋值给变量,我必须执行以下操作:
string s = "[{\"name\":\"print\",\"next\":\"null\",\"proc\":\"printproc\",\"func\":\"null\"}]";
或编译器会抛出错误。是否有一种不那么繁琐的方式来声明常量。我试图在字符串的开头使用@:
string s = @"[{"name":"print","next":"null","proc":"printproc","func":"null"}]";
但我也遇到了编译器错误。将常量保存到文本文件中并从中加载它将起作用,但对我来说可能是一种过度杀伤力。有没有人在C#中遇到过相同的场景并让他们想出一个解决方法?
答案 0 :(得分:3)
您是否尝试过使用单引号来包装属性名称/值?
e.g。 string s = @"[{'name':'print','next':'null','proc':'printproc','func':'null'}]"
答案 1 :(得分:1)
你可以放双重票:
string s = @"[{""name"":""print""}]";
或者,放\
string s = "[{\"name\":\"print\"}]";
您可以使用此'
代替"
以任何方式拆分您的数据,然后使用它
答案 2 :(得分:0)
您可以为所需的每个特殊字符创建一个变量。
为了展示这个概念,我在一个简单的C#控制台应用程序中进行了测试。
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string quot = "\"";
string compound = "Now I can use " + quot + "quotation marks" + quot + " around a variable";
Console.WriteLine(compound);
}
}
}
输出结果为:
现在我可以在变量
周围使用“引号”