IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Récupérer une chaîne json du coté de ASP.NET [Débutant]


Sujet :

ASP.NET

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2009
    Messages : 133
    Points : 158
    Points
    158
    Par défaut Récupérer une chaîne json du coté de ASP.NET
    Bonjour,
    Je bute sur la récupération d'une chaîne json du coté de ASP.NET, je l'ai déjà fait mais là je pense que je dois faire une erreur que j'arrive plus à "voir" malgré la longue veille. Si quelqu'un peut m'apporter ses lumière, je lui en saurai gré :

    C'est sous VS 2010 ou supérieur, voici le code HTML+JS

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
        <script>
            $('#Result').click(function () {
                //var jsonText = '{"data": [{"espid": [9,11], "metid": [9,13,17]}]}';
                var jsonText = '{"espid": [9,11], "metid": [9,13,17]}';
     
                $.ajax({
                    type: "POST",
                    url: "WebForm1.aspx/GetCasesXYByParm",
                    data: jsonText,
                    contentType: "application/json",
                    dataType: "json",
                    success: function (msg) {
                        // Replace the div's content with the page method's return.
                        $("#Result").text(msg.d);
                    }
                });
            });
        </script>
        <style type="text/css">
            #Result
            {
                cursor: pointer;
            }
        </style>
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
        <br />
        <div id="Result">
            Click Me to grab Data.</div>
    </asp:Content>
    et le code behind en C# qui pose problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    using Newtonsoft.Json;
    using System.Web.Services;
     
            [WebMethod]
            public static string GetCasesXYByParm(string rawJson)
            {
                Dictionary<string, int[]> myDic = JsonConvert.DeserializeObject<Dictionary<string, int[]>>(rawJson);
     
                int[] espid = myDic["espid"];
                int[] metid = myDic["metid"]; 
     
                //grab data from factory 
                List<CASEXY> casesxy = FactoryCasesXY(espid, metid); 
     
                //sérialiser!!
                string jsonData = JsonConvert.SerializeObject(casesxy);
                return jsonData;
            }
    La récupération de mon rawJson ne passe pas et je ne sais plus trop comment m'y prendre.
    En vous remerciant par avance.
    nachtigal!!

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2009
    Messages : 133
    Points : 158
    Points
    158
    Par défaut Il faut veiller au formatage de son json...
    Voici la solution au cas où cela pourrait intéresser quelqu'un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    <script>
            $('#Result').click(function () {
               var ratus = new Object();
                     ratus.espid = [9, 11];
                     ratus.metid = [9, 13, 27];
                     var myjson = new Object();
                     myjson.data = ratus;
                     var jsonText = JSON.stringify(myjson);
                     $.ajax({
                         type: "POST",
                         url: "Default.aspx/GetCasesXYByParm",
                         data: jsonText,
                         contentType: "application/json",
                         dataType: "json",
                         success: function (msg) {
                             // Replace the div's content with the page method's return.
                             $("#Result").text(msg.d);
                         },
                         failure: function (response) {
                             alert(response.d);
                         },
                         error: function (response) {
                             alert(response.d);
                         }
                     });
            });
        </script>
    et modifier également le codebehind correspondant de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    [WebMethod]
            public static string GetCasesXYByParm(MyJSON data)
            {
     
           }
     
    public class MyJSON
            {
                public List<int> espid { get; set; }
                public List<int> metid { get; set; }
            }
    Voilà, cette fois ça passe ; le problème venait d'un mauvais formatage du json envoyé à la WebMethode !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 29/05/2008, 15h04
  2. Réponses: 3
    Dernier message: 27/05/2008, 20h05
  3. Récupérer une chaîne pour traitement
    Par loopback dans le forum Linux
    Réponses: 8
    Dernier message: 01/11/2007, 19h11
  4. Expression régulière pour récupérer une chaîne.
    Par z980x dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 24/06/2007, 15h01
  5. [OS Perso] Récupérer une chaîne de caractères
    Par log2n dans le forum Programmation d'OS
    Réponses: 31
    Dernier message: 14/02/2006, 13h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo