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

时间:2016-07-14 13:47:57

标签: c# json string

某些值以JSON格式保存在DB中,如果我从DB复制它,它看起来像这样:

[{"id":"FAC2SOUTHX","name":"South District MW        ","description":"South District MW                                           ","selected":true,"required":false,"sortOrder":10}]

现在我想写一个单元测试,对于它的模拟对象,我需要传递该值,而mock值是一个字符串。但是如果我想将该值赋给字符串变量,C#会给出错误。所以我认为我所要做的就是在它前面添加一个"@"但不起作用。 那么我该如何将该值赋给字符串变量。

4 个答案:

答案 0 :(得分:2)

您必须使用反斜杠对所有qoutes进行注释,以便将字符串识别为String e.g。

case List(q"object $name extends PlaceHolderTrait[$parent] { ..$body }")

答案 1 :(得分:1)

首先你需要逃避你的字符串。在每个内部引号之前,你必须使用反斜杠,所以"成为\"。

然后你可以简单地使用类似Newtonsoft.Json的东西将该字符串转换为适当的对象并检查那个值。

代码非常简单,你可以使用类似的东西:

PROFILE 
Match (a:FacebookComment), (b:FacebookLike) WHERE a.id = toint(b.comment_id) AND a.post_id > 696 AND a.post_id < 746 
MERGE (a)<-[fpl:FB_COMMENT_LIKE]-(b)

答案 2 :(得分:1)

你也可以使用像这样的重复双引号

string str = @"[{""id"":""FAC2SOUTHX"",""name"":""South District MW        "",""description"":""South District MW                                           "",""selected"":true,""required"":false,""sortOrder"":10}]";

看一下这个问题Can I escape a double quote in a verbatim string literal?

答案 3 :(得分:1)

请勿使用@并使用\来逃避"

string someJson = "[{\"id\":\"FAC2SOUTHX\",\"name\":\"South District MW        \",\"description\":\"South District MW                                           \",\"selected\":true,\"required\":false,\"sortOrder\":10}]"