javascript - 如何在 JSON stringify 中使用特殊字符?

标签 javascript c# json ajax asp.net-mvc

我正在尝试对我的 json 代码进行字符串化,以便将其发送到 MVC Controller 。 但当数据包含一些特殊字符(例如大于>或小于号<)时,它不起作用。

这是示例代码

 function demo()
 {
     debugger
     var demo = [];
     demo.one = 'one';
     demo.two = '<just>'
     var treeBinding = JSON.stringify(demo);
     $.ajax({
         url: '/flow/demo',
         type: "GET",
         data: { dd: treeBinding },
         success: function (res) {

         },
         error: function (error) {
             alert(error)
         }
     });
 }

在这种情况下,JSON.stringify 返回一个空白数组。 谁能帮我让它工作吗?

最佳答案

首先,你的数组声明是不正确的。这应该是一个对象,但无论如何你都需要检查对象和数组之间的差异。但是我假设演示是一个带有两个键/属性的对象,将被发送到服务器。

所以声明应该是这样的-

     var demo = {};
     demo.one = 'one';
     demo.two = '<just>';

那么你应该使用转义 -

var treeBinding = encodeURIComponent(JSON.stringify(demo));

关于javascript - 如何在 JSON stringify 中使用特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34453477/

相关文章:

c# - String.Contains() : Multiple character - C#

c# - 如何删除 Xamarin.Forms 中的 (Android) 应用程序标题栏?

c# - 使用 Json.NET 的自定义反序列化

java - JsonObject 构建 Stackoverflow 错误

javascript - React 网站有时不会在移动设备上全屏显示

输入框的javascript值

javascript - Div 高度并不总是返回相同的数字

c# - 是否可以在运行时为 .NET 应用程序切换应用程序配置文件?

iphone - 没有已知的选择器'JSONValue'实例方法

Javascript navigator.mediaDevices.getUserMedia 将源移动到前面