将C#对象转换为json字符串,如何处理双引号
我正在使用Newtonsoft.Json将对象解析为json字符串。它返回这样的想法:
{\"code\":-1,\"idName\":\"empty\",\"idValue\":0,\"message\":\"Failed,can not read object from body\"}
我认为这不是有效的json字符串,任何人都可以解决我的问题?
我想要的是这样的:
{"code":-1,"idName":"empty\",\"idValue\":0,\"message\":\"Failed,can not read object from body\"}public static class CommonUtility
{
// format response string
public static string FormatResponseString(int code, string idName, long idValue, string message)
{
ResponseString rs = new ResponseString();
rs.code = code;
rs.idName = idName;
rs.idValue = idValue;
rs.message = message;
string json = JsonConvert.SerializeObject(rs);
return json;
}
}
public class ResponseString
{
public int code;
public string idName;
public long idValue;
public string message;
}
编辑:这是来自响应字段TextView的实际json,我可以看到:
"{\"code\":-1,\"idName\":\"empty\",\"idValue\":0,\"message\":\"Failed,can not read object from body\"}"
情况是这样的:我将序列化的json字符串放在Web api
CreateResponse方法中。我可以在fidder中看到响应字符串,就像我在无效的json问题中所说的那样
Request.CreateResponse(HttpStatusCode.Created, returnString);
returnString
是来自序列化ResponseString
对象的json字符串
我不认为这是有效的字符串,对吗?
回答:
最后,解决此问题。与你们分享。
我的猜测是这是双重序列化问题。看来
。这就是为什么我SerializeObject
再加Debug.Write(json)
上字符串都能很好地工作的原因。
string json = JsonConvert.SerializeObject(rs); Debug.Write(json);
但是在提琴手调用了Web API之后,Web
API返回了带有无效json(\“)的响应,正如我上面所说的。在其他客户端(例如ios,android设备)上也是如此。
因为网络api为我执行了序列化,并且我进行了额外的显式序列化,这也string json =
JsonConvert.SerializeObject(rs); 意味着我运行了另一个不需要的parseJson。
根据我在这里的问题,我只是直接将未序列化的对象放在CreateResponse
方法中。Request.CreateResponse(HttpStatusCode.Created,
rs);并返回该fidder和其他客户端的有效json。
Request.CreateResponse(HttpStatusCode.Created,rs);
public static class CommonUtility {
// format response string
public static ResponseString FormatResponseString(int code, string idName, long idValue, string message)
{
ResponseString rs = new ResponseString();
rs.code = code;
rs.idName = idName;
rs.idValue = idValue;
rs.message = message;
return rs ;
}
}
public class ResponseString
{
public int code;
public string idName;
public long idValue;
public string message;
}
并在控制器中
ResponseString rs = new ResponseString(); rs = CommonUtility.FormatResponseString(0, "pacelId", returnPacelId, "Succeed,created items in db success");
return Request.CreateResponse(HttpStatusCode.Created, rs);
以上是 将C#对象转换为json字符串,如何处理双引号 的全部内容, 来源链接: utcz.com/qa/429312.html