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

本文关键字:字符串 变量 分配 JSON | 更新日期: 2023-09-27 17:57:07

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

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

现在我想编写一个单元测试,对于它的模拟对象,我需要传递该值,并且模拟值是一个字符串。 但是,如果我想将该值分配给字符串变量,C#给出错误。所以我认为我所要做的就是在它前面加上一个"@"但也没有用。那么我如何将该值分配给字符串变量。

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

您必须用反斜杠注释所有 qoutes,以便将字符串识别为字符串例如

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

首先你需要转义你的字符串。 在每个内部引号之前,您必须使用反斜杠,因此" 变为 ''"。

然后,您可以简单地使用Newtonsoft.Json之类的东西将该字符串转换为适当的对象,并以这种方式检查值。

代码非常简单,您可以使用类似以下内容:

JsonConvert.DeserializeObject<dynamic>(your_string);

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

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

看看这个问题 我可以在逐字字符串文字中转义双引号吗?

不要使用@并使用'来逃避"

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