无效的 JSON 原语:对象

2024-01-02

我正在尝试发送一个字符串化的JSON通过以下 jQuery Ajax 调用将对象传递给 MVC 方法:

$.ajax({
           type: "POST",
           url: "UpdateItem",
           contentType: "application/json; charset=utf-8",
           dataType: "json",
           processData : false,
           data:
               {
                    item: JSON.stringify(_item)
               },
           success: function (data) {
               alert(data);
           },
           error: function (x, t, m, b) {
               DisplayErrorMessage(x.responseText);
           }
       });

我的数据的字符串化版本如下:

{
    "Id": 4,
    "ParentId": 1,
    "TypeId": 2,
    "TypeText": "Solid",
    "ItemNo": 8,
    "StandartTypeId": 7,
    "StandartTypeText": "Dept",
    "GradeTypeId": 6,
    "GradeTypeText": null,
    "Thickness": 0.044,
    "ThicknessToleranceId": 1,
    "ThicknessToleranceText": null,
    "Width": 42,
    "MinWeightId": 6,
    "MinWeight": null,
    "MinWeight2": null,
    "MaxWeightId": 8,
    "MaxWeight1": null,
    "MaxWeight2": null,
    "DefId": null,
    "Quantity": 330690,
    "QuantityToleranceId": 3,
    "QuantityToleranceText": "",
    "ProductionDate": "2014-11-05T22:00:00.000Z",
    "PortId": 3,
    "PortText": null,
    "DeliveryDate": "2014-10-08T21:00:00.000Z",
    "MaterialTypeId": 2,
    "MaterialTypeText": "",
    "FeePrepaid": 30,
    "Price": 525,
    "Extra1": 0,
    "Extra1": 0,
    "CurrencyId": 2,
    "CurrencyText": "",
    "StatusId": 2,
    "StatusText": "",
    "ReasonId": null,
    "ReasonText": null,
    "Note": "New note",
    "CreateDate": "2014-11-06T09:12:29.661Z",
    "CreateUserId": 0,
    "CreateUserText": "",
    "CancelDate": null,
    "CancelUserId": null,
    "CancelUserText": null,
    "ChemicalProperties": null,
    "TechnicalProperties": null,
    "Remarks": null
}

我已通过以下方式成功验证了我的 JSON 对象http://jsonlint.com/ http://jsonlint.com/.

我尝试通过以下方法获取响应:

public JsonResult UpdateItem(string json)
{
    var js = new JavaScriptSerializer();
    var deserializedItem = (object[])js.DeserializeObject(json);


    return Json(null);
}

但是当我尝试通过 Ajax 发布时,在 ASP.NET MVC 控制器方法调用之前收到以下错误消息:

无效的 JSON 原语:对象。异常详细信息:System.ArgumentException:无效的 JSON 原语:对象。

我的堆栈跟踪如下:

[ArgumentException: Invalid JSON primitive: object.]
System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializePrimitiveObject() +915
System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth) +597
System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeList(Int32 depth) +354
System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth) +531
System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String input, Int32 depthLimit, JavaScriptSerializer serializer) +108
System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit) +210
System.Web.Script.Serialization.JavaScriptSerializer.DeserializeObject(String input) +86
System.Web.Mvc.JsonValueProviderFactory.GetDeserializedObject(ControllerContext controllerContext) +191
System.Web.Mvc.JsonValueProviderFactory.GetValueProvider(ControllerContext controllerContext) +19
System.Web.Mvc.<>c__DisplayClassc.<GetValueProvider>b__7(ValueProviderFactory factory) +34
System.Linq.WhereSelectEnumerableIterator`2.MoveNext() +145
System.Linq.WhereSelectEnumerableIterator`2.MoveNext() +171
System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) +460
System.Linq.Enumerable.ToList(IEnumerable`1 source) +58
System.Web.Mvc.ValueProviderFactoryCollection.GetValueProvider(ControllerContext controllerContext) +281
System.Web.Mvc.ControllerBase.get_ValueProvider() +40
System.Web.Mvc.ControllerActionInvoker.GetParameterValue(ControllerContext controllerContext, ParameterDescriptor parameterDescriptor) +60
System.Web.Mvc.ControllerActionInvoker.GetParameterValues(ControllerContext controllerContext, ActionDescriptor actionDescriptor) +117
System.Web.Mvc.Async.<>c__DisplayClass25.<BeginInvokeAction>b__1e(AsyncCallback asyncCallback, Object asyncState) +446
System.Web.Mvc.Async.WrappedAsyncResult`1.Begin(AsyncCallback callback, Object state, Int32 timeout) +130
System.Web.Mvc.Async.AsyncControllerActionInvoker.BeginInvokeAction(ControllerContext controllerContext, String actionName, AsyncCallback callback, Object state) +302
System.Web.Mvc.<>c__DisplayClass1d.<BeginExecuteCore>b__17(AsyncCallback asyncCallback, Object asyncState) +30
System.Web.Mvc.Async.WrappedAsyncResult`1.Begin(AsyncCallback callback, Object state, Int32 timeout) +130
System.Web.Mvc.Controller.BeginExecuteCore(AsyncCallback callback, Object state) +382
System.Web.Mvc.Async.WrappedAsyncResult`1.Begin(AsyncCallback callback, Object state, Int32 timeout) +130
System.Web.Mvc.Controller.BeginExecute(RequestContext requestContext, AsyncCallback callback, Object state) +317
System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.BeginExecute(RequestContext requestContext, AsyncCallback callback, Object state) +15
System.Web.Mvc.<>c__DisplayClass8.<BeginProcessRequest>b__2(AsyncCallback asyncCallback, Object asyncState) +71
System.Web.Mvc.Async.WrappedAsyncResult`1.Begin(AsyncCallback callback, Object state, Int32 timeout) +130
System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state) +249
System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext, AsyncCallback callback, Object state) +50
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) +16
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +301
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155

你尝试过:

data: JSON.stringify(_item)

只是一个猜测,但我认为使用:

data:
           {
                item: JSON.stringify(_item)
           }

不会给你你想要的。

既然你在等待一个String在控制器中,一个String应在请求中传递。

如果你想要多个对象,你必须创建一个变量来转换为类似的内容:

JSON.stringify(_items) => "[{id:1},{id:2}]";

然后将其用于:data: JSON.stringify(_item)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无效的 JSON 原语:对象 的相关文章

随机推荐

  • 将数据从 React 发送到 MySQL

    我正在创建一个发布应用程序 需要使用 React 和 MySQL 数据库之间的通信来来回发送信息 使用 Express 作为我的 JS 服务器 服务器代码如下所示 const express require express const bo
  • 如何在滚动窗格上放置多个标签以及为什么该标签放置在中心?

    我正在尝试做一个feed box显示从服务器到客户端的所有更新 Jframe我放置了一个JScrollPane 以便客户端可以轻松看到更多数量的提要 超过JScrollPane 我试图放置一个JLabel然后它看起来像这样 标签被放置在中心
  • FileList、React、Typescript 的迭代

    我正在 重新调整 文件输入 但无法迭代选定的文件 private onInputChanged e React FormEvent
  • 如何在javascript中使用大写函数映射数组?

    我感兴趣的是 php 中是否有像 array map 或 array walk 这样的函数 不需要遍历整个数组的 for 我可以为自己做到这一点 var array dom lun mar mer gio ven sab i would l
  • 在 OpenGL 中绕 3 个轴旋转对象

    我试图通过增加轴的旋转角度值来实现围绕 3 个轴的对象旋转 并显示这些轴以使观看者可以预测下一个旋转方向 但旋转几次后 仅按照显示轴绕Z轴旋转 有没有可能可以简单地完成它 而无需仔细研究四元数 glPushMatrix glRotatef
  • React Native:Android“从服务器接收到状态代码 502:错误网关”,JCenter 和 Bintray 已停止使用

    请注意 这些是我发现有用的错误片段 以及以 出了什么问题 开头的片段 运行后npx react native run android verbose 自从这个项目昨天工作以来 它一直有效 并且我的 Android 开发环境肯定设置正确 er
  • 在图标上显示通知数量

    我有一个通知图标 字体真棒 questions tagged font awesome 显示通知数量 我在尝试让数字显示在正确的位置时遇到问题 如下图所示 我需要将文本变小并向右和向上移动一点 这是代码 header bubble bord
  • 使用 Javascript/Jquery 根据类名对 DIV 进行排序

    我有以下 HTML 结构 div div 1 div div class red 2 div div class red 3 div div 4 div div 5 div div class red 6 div div 7 div div
  • 具有合并子项的 Git rebase 分支

    今天我面临一个问题 我的队友从 master 创建了分支 他在这个分支中开发了一个功能 然后在子功能的分支中开发了两个子功能 最后他对整个事情做了两次重构提交 所以 C D E F subfeatures B M1 M2 G H featu
  • 如何显示所有用户定义的变量(MySQL)

    I set 两个用户定义的变量如下所示 但过了一段时间 我忘记了名字 SET a 2 b 3 那么MySQL有没有显示的命令所有用户定义的变量 从 MySQL 5 7 开始 性能模式公开了用户变量 见表performance schema
  • Python 请求:在单个请求中发布 JSON 和文件

    我需要执行 API 调用来上传文件以及包含该文件详细信息的 JSON 字符串 我正在尝试使用 python requests lib 来执行此操作 import requests info var1 this var2 that data
  • 如何正确设置 Java/Selenium 配置来运行自动化测试?

    我正在尝试设置 selenium webdriver 与带有 Java 的 Browserstack 一起工作以进行自动化测试 我安装了 Selenium for java 并从 browserstack 的站点复制并粘贴了代码https
  • BLAS 相当于 GPU 的 LAPACK 函数

    在LAPACK中有这个function http www netlib org lapack double dspgvx f对角化 SUBROUTINE DSPGVX ITYPE JOBZ RANGE UPLO N AP BP VL VU
  • 如何实现Web服务的持续部署

    我有一个 Java 应用程序 它在 Web 容器 目前是 Jetty 内运行 并通过 Web 服务响应请求 现在我想创建一种机制 允许尽可能轻松地将应用程序的新版本部署 将 WAR 文件传输到服务器 在那里安装新版本 到 Amazon EC
  • 在Python中导入模块时会发生什么?

    我想知道当我们在 python 中导入模块文件时会发生什么 我的意思是它的过程 换句话说 python 将运行或检查哪些内容 喜欢 init py或 sys modules 等 例如我知道 init py每个包中都有必要的文件 我想知道py
  • 用 Java 读取和写入 TIFF 图像

    我尝试了以下代码来完成读取和写入 tiff 图像的任务 Define the source and destination file names String inputFile images FarmHouse tif String ou
  • 羊群锁定顺序?

    我使用一个简单的测试脚本http www tuxradar com practicalphp 8 11 0 http www tuxradar com practicalphp 8 11 0像这样
  • 如何将QWidget的Wheel事件重定向到QTextEdit

    当鼠标不在QTextEdit上时转动鼠标滚轮 滚动条不会移动 但我仍然想通过鼠标滚轮移动滚动条 那么我该如何实现这个功能呢 我知道像Microsoft Word这样的一些软件有这个功能 我如下实现此功能 但是当您通过鼠标滚轮将滚动条移动到顶
  • 插入排序分析与求和表示法

    我试图理解插入排序的最坏情况分析 但我对涉及的数学有疑问幻灯片 21 ppt http www cse unr edu 7Ebebis CS477 Lect InsertionSortBubbleSortSelectionSort ppt
  • 无效的 JSON 原语:对象

    我正在尝试发送一个字符串化的JSON通过以下 jQuery Ajax 调用将对象传递给 MVC 方法 ajax type POST url UpdateItem contentType application json charset ut