Jquery Ajax和$.toJSON()函数的使用

Jquery Ajax和$.toJSON()函数的使用,jquery,Jquery,$.toJSON()函数的用途是什么。它似乎将数据转换为json格式。 下面是代码片段 data: $.toJSON({ name: $("input[type=text]").val() }) 不使用$.toJSON()函数,我们可以手动提供josn格式的数据,如 data: { name: $("input[type=text]").val() } 我想它也会起作用。请讨论一下。谢谢JSON格式和JSON对象是两种不同的东西 toJSON(插件方法)执行以下操作: toJSON:将jav

$.toJSON()函数的用途是什么。它似乎将数据转换为json格式。 下面是代码片段

data: $.toJSON({ name: $("input[type=text]").val() })
不使用$.toJSON()函数,我们可以手动提供josn格式的数据,如

data: { name: $("input[type=text]").val() }

我想它也会起作用。请讨论一下。谢谢

JSON格式
JSON对象
是两种不同的东西

toJSON
(插件方法)执行以下操作:

toJSON:将javascript对象、数字、字符串或数组序列化为JSON


  • data:$.toJSON({name:$([input[type=text]”).val()})
    将为您提供JSON字符串

  • 数据:{name:$(“input[type=text]”).val()}
    将为您提供javascript对象


  • JSON格式
    JSON对象
    是两个不同的东西

    toJSON
    (插件方法)执行以下操作:

    toJSON:将javascript对象、数字、字符串或数组序列化为JSON


  • data:$.toJSON({name:$([input[type=text]”).val()})
    将为您提供JSON字符串

  • 数据:{name:$(“input[type=text]”).val()}
    将为您提供javascript对象


  • 首先,
    toJSON

    假设它与相同,则它与将对象指定给
    数据
    选项不同。从(我的)重点:

    要发送到服务器的数据如果尚未转换为字符串,则会转换为查询字符串。它会附加到GET请求的url中

    因此,如果不传递字符串(即对象),数据将转换为查询字符串,而不是JSON

    更准确地说

    data: $.toJSON({ name: $("input[type=text]").val() })
    
    将导致此URL(假设GET(
    %22
    ):

    http://some_server.com/?{%22name%22:%22somevalue%22}
    
    我想这会使该值难以访问。使用此ina POST请求更有意义

    另一方面,

    data: { name: $("input[type=text]").val() }
    
    导致

    http://some_server.com/?name=somevalue
    

    也许需要指出的是,在你的例子中

    { name: $("input[type=text]").val() }
    

    不是“JSON格式”。它是一种JavaScript对象文本。JSON是一种数据交换格式,虽然它的语法与JavaScript的对象文本相似,但它是完全不同的。

    首先,
    toJSON

    假设它的作用与相同,则它与将对象分配给
    数据
    选项的作用不同。从(强调项):

    要发送到服务器的数据。如果尚未转换为字符串,则会将其转换为查询字符串。它会附加到GET请求的url中

    因此,如果不传递字符串(即对象),数据将转换为查询字符串,而不是JSON

    更准确地说

    data: $.toJSON({ name: $("input[type=text]").val() })
    
    将导致此URL(假设GET(
    %22
    ):

    http://some_server.com/?{%22name%22:%22somevalue%22}
    
    我想这会使该值难以访问。使用此ina POST请求更有意义

    另一方面,

    data: { name: $("input[type=text]").val() }
    
    导致

    http://some_server.com/?name=somevalue
    

    也许需要指出的是,在你的例子中

    { name: $("input[type=text]").val() }
    

    不是“JSON格式”。它是一个JavaScript对象文本。JSON是一种数据交换格式,虽然它的语法与JavaScript的对象文本相似,但它是完全不同的。

    这是用于
    $.getJSON
    函数,而不是
    $.toJSON
    函数。@Evamulawski。现在呢?那是用于
    $.getJSON
    函数,而不是
    $.toJSON
    函数。@EvanMulawski。现在呢?作为参考,jquery json插件的文档在这里:作为参考,jquery json插件的文档在这里: