我正在使用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字符串
我不认为这是有效的字符串,对吗?
最后,解决此问题。与你们分享。
根本原因:
我的猜测是这是双重序列化问题。看来 ASP.NET Web API 2框架将为我们自动进行序列化
。这就是为什么我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);
问题内容: 将字符串表示形式转换为对象,但我要相反。对象要转换为JSON字符串,我有一个链接http://www.devcurry.com/2010/03/convert- javascript-object-to-json.html, 但是它需要json2.js jQuery是否具有本机功能方法来做到这一点? 问题答案: jQuery只会在调用本机浏览器方法之前进行一些正则表达式检查。如果不可用
问题内容: 如何使用JavaScript(或jQuery)将描述对象的字符串转换为JSON字符串? 例如:转换这个( 不是 有效的JSON字符串): 到这个: 如果可能,我希望避免使用。 问题答案: 如果字符串是来自可靠来源 ,你可以使用然后的结果。像这样: 请注意,当您使用对象文字时,必须将其括在圆括号中,否则将花括号解析为块而不是对象。 我也同意以下问题的评论,那就是最好以有效的JSON开始编
问题内容: 您如何使JS认为字符串是JSON? 我有一个仅在将JSON对象传递给它的情况下才起作用的函数。如果我以与JSON相同的格式将字符串传递给它,则它将不起作用。因此,我想让该函数认为传递给它的字符串是JSON。该字符串确实采用JSON格式。 我还尝试了以下方法。我通过Ajax输入了字符串,参数“ handle as”为“ JSON”,然后将结果传递给函数。 所以我推断出问题不在弦上。如何将
问题内容: 我想将json字符串转换为对象列表。请帮我。如果由来完成,那会更有帮助。 我试过了,但是没有用。我不想要该json的所有值。MatrixModel中提到的 这是一个对象 这是Json String 问题答案: 您可以使用json2csharp.com将json转换为对象模型 将您的JSON粘贴到Box中。 单击“生成”。 您将为您的对象模型获得C#代码 通过使用 NewtonJson*
问题内容: 在Java中,我有一个代码将Java对象转换为JSON字符串。如何在C#中执行类似操作?我应该使用哪个JSON库? 谢谢。 JAVA代码 问题答案: 我使用过Newtonsoft JSON.NET (文档),它允许您创建类/对象,填充字段并序列化为JSON。
我有这个json字符串 我想把它转换成JsonObject,因为它里面有一个json字符串,所以我必须取出JsonElement,然后使用它。问题是JsonElement“service”和“op”是字符串 我希望JsonObject像这样被转换 我尝试了新的JsonParser().parse(字符串)和新的Gson().fromJson(字符串,JsonObject.class),但没有解析。