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

如何读取AJAX请求返回的JSON数据并将不同字段赋值给对应变量

解决AJAX返回JSON数据读取赋值问题

问题根源

你alert弹出object Object是两个原因导致的:

  1. 后端用ToList()查询,返回的MovementInventory是数组对象,不是单个值,alert方法无法直接打印对象结构
  2. 你需要先明确InventoryMovement实体类的属性名(对应数据库的列名),才能读取对应列的值

调试前置操作

先替换AJAX的success回调代码,用浏览器控制台查看返回数据结构:

success: function (data) {
    if (data.Success == true) {
        // 按F12打开浏览器开发者工具,在「控制台」面板可以看到完整的返回数据结构
        console.log('完整返回数据', data)
    }
}

展开控制台打印的MovementInventory对象,就能看到所有可读取的属性名,对应你要取的两列即可。

代码修改方案

方案1:单条数据查询(推荐,同一个Id仅对应一条库存移动记录时使用)

首先修改后端代码,把ToList()改为FirstOrDefault(),直接返回单个对象而不是数组:

public ActionResult GetData(int Id)
{
  var Movement = db.InventoryMovement.FirstOrDefault(x => x.PartNo_Id ==Id);
  return Json(new { Success = true, MovementInventory = Movement });
}

再修改前端代码读取对应列的值,示例代码如下,把字段1、字段2替换成你实际的实体类属性名即可:

success: function (data) {
    if (data.Success == true) {
        var inventoryMovement = data.MovementInventory;
        // 读取两列值赋值给变量
        var firstColumnVal = inventoryMovement.字段1;
        var secondColumnVal = inventoryMovement.字段2;
        // 测试打印
        console.log('第一列值:', firstColumnVal)
        console.log('第二列值:', secondColumnVal)
    }
}

方案2:多条数据查询(同一个Id对应多条库存移动记录时使用)

保留后端ToList()写法,前端通过下标取对应行的列值,或遍历所有行:

success: function (data) {
    if (data.Success == true) {
        var inventoryMovement = data.MovementInventory;
        // 示例:取第一条记录的两列值
        var firstColumnVal = inventoryMovement[0].字段1;
        var secondColumnVal = inventoryMovement[0].字段2;
        
        // 如需遍历所有记录可参考如下写法
        // inventoryMovement.forEach(item => {
        //     console.log(item.字段1, item.字段2)
        //     // 逐行处理赋值逻辑
        // })
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 21:06:06