2017-12-10 1 views
0

Ich habe folgendes JS Objekt:Wie wird JS-Objekt als JSON korrekt gesendet?

json = 
      { 
       "category_id": category, 
       "subcategory_id": subcategory, 
       "offer_type": type_offer, 
       "features": [] 
      }; 

Ich habe versucht, dieses Objekt als JSON zu senden wie:

$.ajax({ 
      type: 'POST', 
      url: '/add', 
      data: json, 
      success: function (data) { 
      }, 
      contentType: "application/json", 
      dataType: 'json' 
     }); 

Ist es richtig? Oder muss ich mich vorher vorbereiten?

Jetzt benutze ich diesen Teil des Codes:

formObj = $("#form_add").serialize(); 

var json = {}; 

var wrapperObj = {json: json, form: formObj}; 

    $.ajax({ 
       type: 'POST', 
       url: '/add', 
       data: JSON.stringify(wrapperObj), 
       success: function (data) { 
        // TODO 
       }, 
       contentType: "application/json", 
       dataType: 'json' 
      }); 

Ist es richtig? Wenn ich zwei Objekte in einem und nach stringify verpacke?

+0

Nun, funktioniert es? – Atsch

+0

Können Sie aktualisierte Frage bitte sehen – Alice

Antwort

1

Sie müssen JSON.stringify verwenden, um es ein gültiges json

$.ajax({ 
      type: 'POST', 
      url: '/add', 
      data: JSON.stringify(json), 
      success: function (data) { 
      }, 
      contentType: "application/json", 
      dataType: 'json' 
     }); 
+0

Können Sie meine Frage bitte wieder sehen – Alice

0

Ich glaube, Sie JSON.stringify zuerst verwenden sollten:

$.ajax({ 
      type: 'POST', 
      url: '/add', 
      data: JSON.stringify(json), 
      success: function (data) { 
      }, 
      contentType: "application/json", 
      dataType: 'json' 
     }); 
Verwandte Themen