我正在构建JSON对象并使用JQuery ajax将其传递给服务器。JSON格式无效
data: "{'authorID' : '" + authorID +
"', 'title' : '" + encodeURIComponent(blogTitle) +
"', 'msg' : '" + encodeURIComponent(blogBody) +
"', 'preview' : '" + encodeURIComponent(mediaContent) +
"', 'layoutID' : '" + previewLayoutId +
"', 'threadID' : '" + threadID + "'}"
但是当我blogBody变量包含'
代码失败,出现错误消息:
{"Message":"Invalid object passed in, \u0027:\u0027 or \u0027}\u0027 expected. (107): {\u0027authorID\u0027 : \u0027148385\u0027, \u0027title\u0027 : \u0027123213\u0027, \u0027msg\u0027 : \u0027%3Cp%3Eqqq%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3E\u0027\u0027\u0027\u0027%3C%2Fp%3E\u0027, \u0027preview\u0027 : \u0027\u0027, \u0027layoutID\u0027 : \u00271\u0027, \u0027threadID\u0027 : \u00270\u0027}","StackTrace":" at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeDictionary(Int32 depth)\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth)\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String input, Int32 depthLimit, JavaScriptSerializer serializer)\r\n at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit)\r\n at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize[T](String input)\r\n at System.Web.Script.Services.RestHandler.GetRawParamsFromPostRequest(HttpContext context, JavaScriptSerializer serializer)\r\n at System.Web.Script.Services.RestHandler.GetRawParams(WebServiceMethodData methodData, HttpContext context)\r\n at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.ArgumentException"}
有人能说得清是错误和如何解决它?
你有没有试过http://jslint.com或http://jshint.com?这些都适合查看你的JSON输出来处理问题。 –
为什么要手工构建JSON而不是仅仅使用数据结构并对其进行序列化呢?根据http:// jsonlint提供的 – PhonicUK
。com /你的json是完美的错误可能是由于你的服务器端代码 –