JsonConvert.DeserializeObject特殊字符未终止字符串。 预期分隔符:
出于某种原因,当我在我的淘汰模型中有一个特殊字符并将其转换为json对象时,字符串将结束特殊字符所在的位置,并且在反序列化时出现错误:
$.ajax({ url: "/Admin/Forms/Convert", type: "post", //contentType: "application/json", dataType: "text", data: "modelData=" + ko.toJSON(theModel), success: function (data) { // window.open("/Admin/Forms/DisplayClient"); var win = getFullWindow('/Admin/Forms/DisplayClient'); win.open(); }, error: function (xhr, status, msg) { alert(msg); } });
当我得到这个方法:
public void Convert(string modelData) { Form form = JsonConvert.DeserializeObject
我收到一个错误:
Unterminated string. Expected delimiter: ". Path 'Name', line 1, position 178.
如果JSON字符串包含特殊字符,如双引号“,反斜杠\或斜杠/,则需要使用反斜杠进行转义。没有JSON解析器能够处理第一个格式不正确的JSON字符串地点。
因此,您需要确保您的theModel
格式正确并符合JSON.org标准。
我有几次同样的错误。 我更新了我的web.config更大的最大长度,以确保没有截断。
encodeURIComponent()函数对URI组件进行编码。
此function对特殊字符进行编码。 另外,它编码以下字符:,/? :@&= + $#
这已添加到我的ajax请求中:
$.ajax("URL", { type: "POST", cache: false, data: { a: encodeURIComponent(jsonData), b: userID } })
我找到了自己问题的答案:escape(ko.toJSON(theModel))我需要的只是转义函数,它运行得很好。
- 在MVC4中,如何一次保存多行编辑?
- 为什么我的视图模型不能与实现接口的通用ViewModel绑定? (ASP.NET MVC 3)
- 使用部分视图时,MVC模型在post上为空
- 在Visual Studio中更改SQL Server数据库的最大大小以在Azure中上载
- ASP.NET MVC – 在Html.ActionLink routeValues中传递模型的麻烦
- 如果我已经拥有Access Token的值,如何创建UserCredential的实例?
- 如何通过.NETvalidationxml代码文件? +如果我使用XML序列化,我该怎么做?
- 检查用户是否在asp.net mvc Identity中扮演角色
- Azure ASP .net WebApp请求超时