如何在JSON字符串化中使用特殊字符?

Rav*_*mar 0 javascript c# ajax asp.net-mvc json

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

这是示例代码

 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)
         }
     });
 }
Run Code Online (Sandbox Code Playgroud)

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

Nav*_*dar 6

首先,您使用array的声明是不正确的,这应该是一个对象,但是无论哪种情况,您都需要检查对象和数组之间的差异。但是我假设demo是一个具有两个键/属性的对象,它将被发送到服务器。

所以声明应该看起来像这样-

     var demo = {};
     demo.one = 'one';
     demo.two = '<just>';
Run Code Online (Sandbox Code Playgroud)

然后,您应该使用逃脱-

var treeBinding = encodeURIComponent(JSON.stringify(demo));
Run Code Online (Sandbox Code Playgroud)