后台代码返回JSON对象给前端,前端把JSON转换为字符串就能输出,直接输出对象就是Undefined,试了网上很多方法发现都不对,最后发现返回JSON对象的时候,字段名称自动被小写了,我没有注意到,前端在调用的时候还是用大写的字段名调用,就是Undefined,换成小写了就没问题了。

我的后台代码,输出JSON对象,这些是修改过的,修改前sex和num我都是写的Sex和Num,首字母大写了,就出问题了

[HttpPost]
        public JsonResult GetEchartsPie()
        {
            //声明两个动态数据,存储循环出来的数据
            ArrayList xAxisData = new ArrayList();
            ArrayList yAxisData = new ArrayList();
            Random r = new Random();
            //循环list将数据循环存储在动态数组中
            for (int i = 0; i < 10; i++)
            {
                xAxisData.Add(r.Next(0,2)==0 ? "男" : "女");
                yAxisData.Add(r.Next(0, 10));
            }
            var result = new { sex = xAxisData, num = yAxisData };
            return Json(result);
        }

前端代码(当时也是用的result.Num,字母大写了,就报错,改成小写就OK了)

 $.ajax({
                url: "/Home/GetEchartsPie",
                type: "post",
                async: false,
                dataType: "json",
                success: function (result) {
                    //for循环遍历所需的数据
                    for (var i = 0; i < result.num.length; i++) {
                        Info[i] = JSON.parse(result.num[i]);
                    }
                    for (var i = 0; i < result.sex.length; i++) {
                        Sex[i] = result.sex[i];//以JSON的方式接收字符串
                    }
                    InitPie(Sex, Info);
                },
                error: function (error) {
                    alert("Ajax获取服务器数据出错了!" + error);
                }
            });

问了群里大佬,说可以设置转换JSON的时候让他不自动变小写,但是我懒得找啦,就都给改成小写了,有兴趣的朋友可以去搜搜看。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐