Ошибка отправки json в webmethod
Всем привет,
У меня возникли проблемы с отправкой JSON в веб-метод. Вот кстати, что я пытаюсь сделать это.
Если есть лучший способ сделать это, пожалуйста, дайте мне знать.
То, что я пытаюсь сделать, - это сохранить объект JSON в базе данных.
<script type="text/javascript"> function TEST() { var str = { 'data' : [ { "id" : "ajson1", "parent" : "#", "text" : "Simple"}, { "id" : "ajson2", "parent" : "#", "text" : "Root"}, ] } $.ajax({ type: "POST", url: "Default3.aspx/Test", data: str, //contentType: "plain/text", contentType: "application/json; charset=utf-8", dataType: "json", success: function(msg) { alert(msg.d); }, error: function(e) { alert(e.responseText); } }); } </script> Code behind: [WebMethod] public static string Test(string Object) { return "success"; // return "{data:data}"; }
я получил следующее сообщение об ошибке,
--------------------------- Message from webpage --------------------------- {"Message":"Invalid JSON primitive: data.","StackTrace":" at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializePrimitiveObject()\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"} --------------------------- OK ---------------------------
заранее спасибо.
Что я уже пробовал:
Ошибка отправки JSON в WebMethod
F-ES Sitecore
Вероятно, вы не можете использовать "#" в качестве имени свойства.
Richard Deeming
Ошибка предполагает, что существует неправильное совпадение между JSON, который вы отправляете, и структурой класса, который ваш WebMethod пытается десериализовать. Как выглядит этот класс?