通过JSON和asp.net mvc在字符串中使用双引号

本文关键字:字符串 JSON asp net mvc 通过 | 更新日期: 2023-09-27 18:00:55

通过webform返回json格式的字符串,"将被正确转义,一切正常,但在mvc中,"将以'"格式显示,因此josn格式将损坏

这段代码在mvc中,返回"name'":'"MSLM"

public ActionResult Index()
{
   string s = @"name"":""MSLM";
   return Json(s, JsonRequestBehavior.AllowGet);
}

该代码在webform中工作正常,并返回"name":"MSLM"

Response.Clear();
Response.Charset = "utf8";
Response.ContentType = "application/json";
string s = @"name"":""MSLM";
Response.Write(s);
Response.End();

通过此代码串行化测试的字符串,但不太适用

JavaScriptSerializer js = new JavaScriptSerializer();
string s = "'"asdfasdf'":'"asdfad'"";
return js.Serialize(s);

通过JSON和asp.net mvc在字符串中使用双引号

您说输出正确的第一个例子是不正确的。

string s = @"name"":""MSLM";

这转换为字符串name":"MSLM

请注意,我没有使用引号来分隔字符串。就像字符串foo可以键入为"foo"一样,name":"MSLM可以记为"name":"MSLM"。

然而,你的第二个例子似乎正是你想要的。

string s = "'"asdfasdf'":'"asdfad'"";

这转换为字符串"asdfasdf":"asdfad"。可以写成"asdfasdf":"asdfad">查看开始和结束处的双引号。外部引号表示字符串s的终止位置。内部的一组引号用于包裹asdfasdf值。

第二个例子也可以表述如下:

string s = @"""asdfasdf"":""asdfad""";

这两个片段是等价的。使用@"mystring"表示法通常用于想要输入多行字符串变量的场景,但也可以在单行上使用(我不明白为什么要使用它,但它是有效的(。

长话短说,示例2是正确的,示例1不是。我怀疑你在测试过程中犯了一个错误,所以造成了混乱。