You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在jQuery AJAX成功回调中解析C#返回的JSON列表

解决jQuery AJAX解析C#返回JSON列表时出现undefined的问题

看起来你在把C#服务返回的JSON列表渲染到弹窗时遇到了属性值undefined的问题,我来帮你一步步排查和解决:


第一步:先确认返回的JSON结构是否正确

首先打开浏览器开发者工具(F12),在Network标签里找到你的AJAX请求,查看Response里的JSON内容;或者直接在success回调里加console.log(data),看看返回的数据到底是什么样的。这一步能帮你快速定位核心问题:

常见问题1:属性名大小写不匹配

C#默认属性命名是PascalCase(比如Title),但如果你的C#服务配置了驼峰序列化(比如用Newtonsoft.Json的CamelCasePropertyNamesContractResolver),返回的JSON属性会变成camelCase(比如title)。这时候你在JS里写data[i].Title自然会拿到undefined,得改成data[i].title。

举个C#端的ASP.NET MVC示例:

// 启用驼峰序列化配置
var jsonSettings = new JsonSerializerSettings 
{ 
    ContractResolver = new CamelCasePropertyNamesContractResolver() 
};
return Json(yourItemList, jsonSettings);

这时候JS里就要对应使用小写开头的属性名。

常见问题2:AJAX没自动解析JSON

如果你的AJAX请求没指定dataType: 'json',jQuery可能不会自动把响应字符串解析成JSON对象,直接访问属性就会得到undefined。解决方法有两种:

  • 给AJAX请求加上dataType: 'json'参数,让jQuery自动解析:
$.ajax({
    url: '/YourService/YourMethod',
    type: 'GET',
    dataType: 'json', // 关键参数,自动处理JSON解析
    success: function(data) {
        // 这里的data已经是JSON对象
        console.log(data);
        // 开始渲染逻辑
    }
});
  • 或者在success回调里手动解析:
success: function(response) {
    var data = JSON.parse(response); // 手动把字符串转成JSON对象
    // 后续渲染操作
}

常见问题3:C#返回的是包装后的对象,不是直接的列表

很多时候C#服务会把列表包装在一个响应对象里(比如包含状态码、消息和数据),比如:

return Json(new { 
    Success = true,
    Message = "数据获取成功",
    Data = yourItemList
});

这时候你在JS里直接遍历data是不对的,得先拿到data.Data再遍历:

success: function(response) {
    if (response.Success) {
        var itemList = response.Data;
        for (var i = 0; i < itemList.length; i++) {
            // 访问itemList[i].Title
        }
    }
}

第二步:添加空值兜底,避免页面显示undefined

就算解决了上面的问题,有时候数据本身可能就没有Title这类值,这时候可以用逻辑或操作符给个默认值,避免页面出现undefined:

var title = data[i].Title || "无标题";
var content = data[i].Content || "无内容";
html += `<div><h3>${title}</h3><p>${content}</p></div>`;

内容的提问来源于stack exchange,提问作者lorranpalmeira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:59:32