C# 如何从Fiddler中显示的JSON对象中删除转义字符
我想将我的C#对象序列化为一个JSON对象,而不使用包含转义字符的最终文本字符串 下面的方法是通过RESTful设计调用的,当通过fiddler调用时返回以下JSON对象,但是我想删除反斜杠,这样它只包含双引号并尊重JSON格式C# 如何从Fiddler中显示的JSON对象中删除转义字符,c#,json,rest,json.net,fiddler,C#,Json,Rest,Json.net,Fiddler,我想将我的C#对象序列化为一个JSON对象,而不使用包含转义字符的最终文本字符串 下面的方法是通过RESTful设计调用的,当通过fiddler调用时返回以下JSON对象,但是我想删除反斜杠,这样它只包含双引号并尊重JSON格式 “{\'模型\\”:“Faslev\”,“平台\\”:“ABC\”,“年\”:2010,\'月\:“六月\”, \“plant\”:“ONDH\”,“country\”:“Brazil\”}“ “{Message:PONG}”如果您使用的是Web API,则不需要调用J
“{\'模型\\”:“Faslev\”,“平台\\”:“ABC\”,“年\”:2010,\'月\:“六月\”,
\“plant\”:“ONDH\”,“country\”:“Brazil\”}“
“{Message:PONG}”
如果您使用的是Web API,则不需要调用JsonConvert.SerializeObject()
。将方法的返回类型更改为模型
类(而不是字符串
),然后简单地返回模型。Web API将为您序列化它。根据需要更新响应字符串,然后反序列化并返回
return Request.CreateResponse(HttpStatusCode.OK, JsonConvert.DeserializeObject(corr_str, new JsonSerializerSettings()));
只有在序列化
model
的字符串结果上再次调用SerializeObject
时,我才能实现这一点。您使用的是Web API吗?如果是这样,请将方法返回类型更改为Model,然后简单地返回模型。Web API将为您序列化它。@AndrewHitaker我不确定我是否理解。如果我重复序列化过程,我会得到两倍于字符串s=JsonConvert.SerializeObject(modelFabrication)的反斜杠;返回JsonConvert.Serialized对象;当然——我的意思是,只有将模型序列化两次,才能使用斜杠。我是说你的结果在某个地方再次被序列化了,这就是你看到斜杠的原因。@BrianRogers谢谢你的评论,它已经起作用了。你用另一种方式解决了我的问题。你应该把它作为一个答案。你说的“将方法的返回类型更改为模型”是什么意思?我也有同样的问题。但是,我不知道“Model”是什么意思。@Gandarez如果你看他问题中的代码,他正在创建一个名为Model
的对象,然后将其序列化为字符串并返回字符串。我的意思是,他应该将方法的返回类型更改为他的Model
类(而不是string),然后只返回该对象而不序列化它。在您自己的代码中,您正在使用的对象/类的名称可能不是Model
。
public string Ping()
{
return "{Message" + ":" + "PONG" + "}";
}
return Request.CreateResponse(HttpStatusCode.OK, JsonConvert.DeserializeObject(corr_str, new JsonSerializerSettings()));