我正在尝试对我的json代码进行字符串化,以将其发送到MVC控制器。但是,当数据包含某些特殊字符(例如大于>或小于符号<)时,它将不起作用。
这是示例代码
function demo() { debugger var demo = []; demo.one = 'one'; demo.two = '' var treeBinding = JSON.stringify(demo); $.ajax({ url: '/flow/demo', type: "GET", data: { dd: treeBinding }, success: function (res) { }, error: function (error) { alert(error) } }); }
在这种情况下,JSON.stringify返回一个空白数组。谁能帮我使它正常工作?
首先,您使用array的声明是不正确的,这应该是一个对象,但是无论哪种情况,您都需要检查对象和数组之间的差异。但是我假设demo是一个具有两个键/属性的对象,它将被发送到服务器。
所以声明应该看起来像这样-
var demo = {}; demo.one = 'one'; demo.two = '';
然后,您应该使用逃脱-
var treeBinding = encodeURIComponent(JSON.stringify(demo));