将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

回到顶部