将javascript数组作为JSON对象数组发布

时间:2017-05-31 03:56:45

标签: jquery ruby-on-rails json

我通过jQuery ajax请求向rails控制器发布了一个json对象数组。我需要使用JSON.stringify还是jQuery应该为我处理它?<​​/ p>

  var vals = [{"name":"item name #1"},{"name":"item name #2"}];
  $.ajax({
    url: '/arc/api/v1/calculate_items',
    type: 'POST',
    data: {line_items: vals},
    dataType: 'json'
  }).done(function(r){

VS

  var vals = [{"name":"item name #1"},{"name":"item name #2"}];
  $.ajax({
    url: '/arc/api/v1/calculate_items',
    type: 'POST',
    data: {line_items: JSON.stringify(vals)},
    dataType: 'json'
  }).done(function(r){

1 个答案:

答案 0 :(得分:1)

  

我需要使用JSON.stringify吗?

您需要使用JSON.stringify将对象(或对象数组)首先serialize转换为JSON,然后指定内容类型,以便服务器了解它的JSON。

  

jQuery为我处理它?<​​/ p>

不,不是。

有两种jQuery方法自动执行,getJSONpost

$.getJSON("/some/url", function(data) { 
   // the data is already a plain JSON object
})


var data = /* Your data in JSON format - see below */;
$.post("/some/url", data, function(returnedData) {
  // the returnedData is already a plain JSON object    
})