如何将JSON值分配给字符串变量

3
DB中保存了一些值的JSON格式,如果我从DB中复制它,它看起来像这样:
[{"id":"FAC2SOUTHX","name":"South District MW        ","description":"South District MW                                           ","selected":true,"required":false,"sortOrder":10}]

现在我想编写一个单元测试,需要传递一个字符串值给其模拟对象。但是,如果我想将该值分配给一个字符串变量,C#会报错。因此,我认为我只需要在前面加上一个"@"就可以了,但这也没有起作用。 那么,我该如何将该值分配给一个字符串变量呢?


将该JSON用双引号括起来,并转义其中所有的双引号。 - Marco Scabbiolo
或者只需将 JSON 中的双引号替换为单引号,哪个更容易就用哪个。 - felix-b
4个回答

2

您需要使用反斜杠对所有引号进行注释,以便字符串被识别为字符串 例如:

string s = "My string with \" qouted \" Values";

1
您可以像这样使用重复的双引号。
string str = @"[{""id"":""FAC2SOUTHX"",""name"":""South District MW        "",""description"":""South District MW                                           "",""selected"":true,""required"":false,""sortOrder"":10}]";

请看这个问题如何在verbatim字符串中转义双引号?


1
首先,您需要转义字符串。在每个内部引号之前,您必须使用反斜杠,因此 " 变为 \ "。
然后,您可以简单地使用类似Newtonsoft.Json的工具将该字符串转换为适当的对象,并以此方式检查值。
代码非常简单,您可以使用以下内容:
JsonConvert.DeserializeObject<dynamic>(your_string);

1
不要使用 @,使用 \ 转义 "
string someJson = "[{\"id\":\"FAC2SOUTHX\",\"name\":\"South District MW        \",\"description\":\"South District MW                                           \",\"selected\":true,\"required\":false,\"sortOrder\":10}]"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接