c# - 从 web api 2 获取值时出现 Json 解析错误

标签 c# .net json asp.net-web-api asp.net-web-api2

我开发了一个简单的 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);  
        }

从这里往上读。 Why is JsonRequestBehavior needed?

关于c# - 从 web api 2 获取值时出现 Json 解析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32069229/

相关文章:

c# - 我需要在 C# 中创建二维数组

c# - 列表的加入语句

SQL Server SELECT 到 JSON 函数

java - Scala 中不是 JSON 对象异常

c# - 启动和停止服务

c# - 如何枚举进程中的所有窗口?

c# - 在 DataGridView 中,在添加新行时将列的 ReadOnly 属性设置为 false,更新其 true (c#.net)

c# - 在不使用同步机制的情况下从 2 个不同的线程写入共享资源

c# - 值 'XXX.yyyyy' 的格式无效

Python,将字典添加到JSON文件