我开发了一个简单的 WebAPI 2 应用程序,其中包含此 get 方法:
public HttpResponseMessage Get(int id)
{
var x = db.TESTS.ToList();
var formatter = new JsonMediaTypeFormatter();
return Request.CreateResponse(HttpStatusCode.OK, x, formatter);
}
我查过了。它正在返回 Json 值。我也在 Fiddler 里查过了。
但是当我想在一个简单的 html 文件中检索它时,我遇到了解析错误。我的 Web 服务发布在本地主机上。
网络服务网址:http://192.168.5.154/mobileapi/api/values/2回来了
[{"ID":2.0,"TEXT":"test 2"},{"ID":1.0,"TEXT":"test"}]
这是代码。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Get Json value from WebAPI url</title>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<script type="text/javascript">
jQuery(document).ready(function ($) {
jQuery.ajax({
type: "GET",
url: "http://192.168.5.154/mobileapi/api/values/2?callback=?",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data, status, jqXHR) {
alert("data is available");
},
error: function (jqXHR, status) {
alert(status);
}
});
});
</script>
</body>
</html>
最佳答案
更新您的 Controller 代码:
using System.Web.Script.Serialization;
[HttpGet]
public JsonResult Get(int id)
{
var ListOfMyObject = db.TESTS.ToList();
JavaScriptSerializer jss = new JavaScriptSerializer();
string output = jss.Serialize(ListOfMyObject);
return Json(output , JsonRequestBehavior.AllowGet);
}
关于c# - 从 web api 2 获取值时出现 Json 解析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32069229/