2017-06-17 1 views
1

de sérialisation tuple à JSON:sérialisation tuple à JSON

List<Tuple<string, string, string, string, string, string>> iCalEvents = new List<Tuple<string, string, string, string, string, string>>(); 

Si je sortie la valeur à l'aide:

string iCalEventsJson = JsonConvert.SerializeObject(iCalEvents); 

Elle produit JSON valide:

[{ "Item1 ":" Film/Événement - 05/10 "," Item2 ":" "," Item3 ":" "," Item4 ":" Lorem ipsum dolor assis amet, consectetur adipisicing elit., Saepe harum, similaire eaque ratione optio nihil est, nostrum velit minima soluta, recusandae quis, tenetur sunt ut. Tempora accusamus prévoyante Maxime, sunt debitis quaerat nemo, nostrum cupiditate necessitatibus ipsam deleniti consequatur quos quae odio amet obcaecati, eligendi "" item5. ":" 10.05.2017" , "Item6":" 2017-05- 12 "}, {" Item1 ":" Film/ Détails de l'événement - 05/12 "," Item2 ":" "," Item3 ":" "," Item4 ":" Film de développement /Événement Détail ", "Item5": "2017-05-12", "Item6": "2017-05-12"}, {"Item1": "Film/ Détails de l'événement - 05/14", "Item2": "", "Item3": "", "Item4": "Film de développement /Événement Détail", "Item5": "2017-05-14", "Item6": "2017-05-14"}, {"Item1" : "Film/ Détails de l'événement - 05/16", "Item2": "", "Item3": "", "Item4": "Film de développement /Événement Détail", "Item5": " 2017-05-16 "," Item6 ":" 2017-05-16 "}, {" Item1 ":" Film/ Détails de l'événement - 05/19 "," Item2 ":" "," Item3 ":" », "Item4": "Film Development /Détail de l'événement", "item5": "19.05.2017", "Item6": "19/05/2017"}]

Cependant, quand je passer la variable chaîne à jquery ajax dans les domaines suivants:

var json = @iCalEventsJson;  
$.ajax({ 
     url: '@Url.Action("CreateICalEvent", "ICalEvent")', 
     type: 'POST', 
     dataType: 'json', 
     data: json, 
     contentType: 'application/json; charset=utf-8', 
     success: function (data) { 
      var message = data.Message; 
      $("#resultMessage").html(message); 
     } 
    }) 

Elle produit JSON invalide et cause ajax à l'échec:

[{&quot;Item1&quot;:&quot;Film/Event -- 05/10&quot;,&quot;Item2&quot;:&quot;&quot;,&quot;Item3&quot;:&quot;&quot;,&quot;Item4&quot;:&quot;Lorem ipsum dolor sit amet, consectetur adipisicing elit. Saepe harum, similique eaque ratione optio nihil est, nostrum velit minima soluta, recusandae quis, tenetur sunt ut. Tempora accusamus provident maxime, sunt debitis quaerat nemo, nostrum cupiditate necessitatibus ipsam deleniti consequatur quos quae odio amet obcaecati, eligendi.&quot;,&quot;Item5&quot;:&quot;2017-05-10&quot;,&quot;Item6&quot;:&quot;2017-05-12&quot;},{&quot;Item1&quot;:&quot;Film/Event Detail -- 05/12&quot;,&quot;Item2&quot;:&quot;&quot;,&quot;Item3&quot;:&quot;&quot;,&quot;Item4&quot;:&quot;Development Film/Event Detail&quot;,&quot;Item5&quot;:&quot;2017-05-12&quot;,&quot;Item6&quot;:&quot;2017-05-12&quot;},{&quot;Item1&quot;:&quot;Film/Event Detail -- 05/14&quot;,&quot;Item2&quot;:&quot;&quot;,&quot;Item3&quot;:&quot;&quot;,&quot;Item4&quot;:&quot;Development Film/Event Detail&quot;,&quot;Item5&quot;:&quot;2017-05-14&quot;,&quot;Item6&quot;:&quot;2017-05-14&quot;},{&quot;Item1&quot;:&quot;Film/Event Detail -- 05/16&quot;,&quot;Item2&quot;:&quot;&quot;,&quot;Item3&quot;:&quot;&quot;,&quot;Item4&quot;:&quot;Development Film/Event Detail&quot;,&quot;Item5&quot;:&quot;2017-05-16&quot;,&quot;Item6&quot;:&quot;2017-05-16&quot;},{&quot;Item1&quot;:&quot;Film/Event Detail -- 05/19&quot;,&quot;Item2&quot;:&quot;&quot;,&quot;Item3&quot;:&quot;&quot;,&quot;Item4&quot;:&quot;Development Film/Event Detail&quot;,&quot;Item5&quot;:&quot;2017-05-19&quot;,&quot;Item6&quot;:&quot;2017-05-19&quot;}] 

ENCOD essayé aussi ING:

var json = @HttpUtility.HtmlEncode(iCalEventsJson); 
$.ajax({ 
    url: '@Url.Action("CreateICalEvent", "ICalEvent")', 
    type: 'POST', 
    dataType: 'json', 
    data: json, 
    contentType: 'application/json; charset=utf-8', 
    success: function (data) { 
     var message = data.Message; 
     $("#resultMessage").html(message); 
    } 
}); 

... mais encore JSON invalide:

[{&amp;quot;Item1&amp;quot;:&amp;quot;Film/Event -- 05/10&amp;quot;,&amp;quot;Item2&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;Item3&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;Item4&amp;quot;:&amp;quot;Lorem ipsum dolor sit amet, consectetur adipisicing elit. Saepe harum, similique eaque ratione optio nihil est, nostrum velit minima soluta, recusandae quis, tenetur sunt ut. Tempora accusamus provident maxime, sunt debitis quaerat nemo, nostrum cupiditate necessitatibus ipsam deleniti consequatur quos quae odio amet obcaecati, eligendi.&amp;quot;,&amp;quot;Item5&amp;quot;:&amp;quot;2017-05-10&amp;quot;,&amp;quot;Item6&amp;quot;:&amp;quot;2017-05-12&amp;quot;},{&amp;quot;Item1&amp;quot;:&amp;quot;Film/Event Detail -- 05/12&amp;quot;,&amp;quot;Item2&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;Item3&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;Item4&amp;quot;:&amp;quot;Development Film/Event Detail&amp;quot;,&amp;quot;Item5&amp;quot;:&amp;quot;2017-05-12&amp;quot;,&amp;quot;Item6&amp;quot;:&amp;quot;2017-05-12&amp;quot;},{&amp;quot;Item1&amp;quot;:&amp;quot;Film/Event Detail -- 05/14&amp;quot;,&amp;quot;Item2&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;Item3&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;Item4&amp;quot;:&amp;quot;Development Film/Event Detail&amp;quot;,&amp;quot;Item5&amp;quot;:&amp;quot;2017-05-14&amp;quot;,&amp;quot;Item6&amp;quot;:&amp;quot;2017-05-14&amp;quot;},{&amp;quot;Item1&amp;quot;:&amp;quot;Film/Event Detail -- 05/16&amp;quot;,&amp;quot;Item2&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;Item3&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;Item4&amp;quot;:&amp;quot;Development Film/Event Detail&amp;quot;,&amp;quot;Item5&amp;quot;:&amp;quot;2017-05-16&amp;quot;,&amp;quot;Item6&amp;quot;:&amp;quot;2017-05-16&amp;quot;},{&amp;quot;Item1&amp;quot;:&amp;quot;Film/Event Detail -- 05/19&amp;quot;,&amp;quot;Item2&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;Item3&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;Item4&amp;quot;:&amp;quot;Development Film/Event Detail&amp;quot;,&amp;quot;Item5&amp;quot;:&amp;quot;2017-05-19&amp;quot;,&amp;quot;Item6&amp;quot;:&amp;quot;2017-05-19&amp;quot;}] 

Qu'est-ce que je manque?

+0

Quel serait le point. Vous ne pouvez pas lier un 'Tuple' dans une méthode post (il n'a pas de constructeur sans paramètre) –

Répondre

2

Vous souhaitez probablement utiliser Html.Raw ou l'équivalent de ces jours.

var json = @Html.Raw(iCalEventsJson); 
+0

Cela a fait l'affaire! Merci @Nick Larsen – OtoNoOto