Realizzazione di JSON Webservice utilizzando C# .NET

Io sto cercando di fare il JSON webservice in C# .NET. Una stringa json è di ritorno dal metodo web, ma contiene una struttura xml come:

  <string xmlns="http://tempuri.org/">
  {"checkrecord":[{"rollno":"abc2","percentage":40,"attended":12,"missed":34}],"Table1":[]}
  </string> 

Ho visto questo articolo prima non era molto utile per me.

Quindi il mio problema è che una stringa json non è restituito nella sua pura formato. Non voglio che la versione di xml e xmlns stringa. Ho intenzione di utilizzare il servizio web su Android dopo.

Qualcuno mi può aiutare?

Grazie

Perché non si utilizza un servizio WCF ?
Io preferisco il SAPONE perché ho lavorato su questo per un lungo tempo ormai. Se u pensare WCF è ciò di cui ho bisogno, u può dirmi come posso fare per connettersi a un database SQL, il fuoco di una query select*, ottenere il risultato come set di dati, la conversione del set di dati a puro json e poi tornare ?U può dirmi come è fatto tramite WCF, perché non ho idea di
Ho detto perché ho usato ksoap a consumare molti servizi web sul mio lato client. Volevo che il mio servizio web, per restituire un puro json perché sto trovando difficile anche per restituire una Stringa json dal mio webservice. Si può vedere this per capire meglio il mio problema
per rendere le cose chiare,penso che “Json”, perché WCF pacchetti sono più grandi (come si è visto in feedler),che rende il mobile. più pesante. Accanto a questo, anche utilizzando le tecnologie senza proxy generazione come Ksoap wcf servizi, non ci fa senso come usato comunemente con Android. (Come nota servizi RestFul ci supportano la generazione del proxy,anche per android+supporto WCF noi OData di uscita)

OriginaleL’autore Parth Doshi | 2011-11-29

5 Replies
  1. 4

    Se si decorare la vostra interfaccia con gli attributi per la richiesta e formato di risposta si può ottenere WCF standard di tornare e di interpretare il corretto json.

        [WebGet(UriTemplate = "user/{userid}", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]

    Il problema è, tuttavia, che WCF innata DataContractJsonSerializer non restituirà sempre corretto json. La sua serializzazione dei dizionari è problematico in meglio, dal momento che è serializzato come un elenco di chiave/valore-coppie. Per ovviare a questo si deve tornare Stream dai metodi di servizio e di fare la serializzazione a mano (usando Json.NET o ServiceStack per eseguire la serializzazione). In questi casi è probabilmente consigliabile utilizzare WebAPI, ma per alcuni casi WCF regolare può essere utilizzato utilizzando il citato decorazioni.

    OriginaleL’autore faester

  2. 2

    Si può provare a costruire il vostro servizio utilizzando l’Api REST. È possibile trovare le informazioni di RIPOSO con WCF a questo link

    È possibile scaricare il toolkit per i campioni su come costruire riposante servizi wcf che restituisce un json di risposta.

    OriginaleL’autore Rajesh

  3. 1

    Questo non è un problema quando si utilizza ServiceStack, cioè ogni risultato si ritorna ottenere automaticamente convertito in Risposta ContentType che si desidera, cioè questo è il codice completo di un semplice servizio web che può essere chiamato attraverso tutti i VERBI HTTP (GET,POST,PUT,DELETE) in tutti i formati supportati (nessuna configurazione richiesta), cioè JSON, XML, HTML, JSV, CSV, SAPONE, anche da un Modulo HTML x-www-form-urlencoded o QueryString richiesta:

    public class Hello {
        public string Name { get; set; }
    }
    
    public class HelloResponse {
        public string Result { get; set; }
    }
    
    public class HelloService : IService<Hello> {
        public object Execute(Hello request)
        {
            return new HelloResponse { Result = "Hello, " + request.Name };
        }
    }

    È possibile ignorare la risposta che si ottiene con la Accettare:application/json HTTP Intestazione o, semplicemente aggiungendo il ?format=json sulla QueryString.

    Vedere il ServiceStack l’Esempio “Hello World” per vedere un esempio di cui sopra di servizi web.

    OriginaleL’autore mythz

  4. 0

    Modificare ritorno nel metodo per

            Context.Response.Write(ans);
            Context.Response.End();

    OriginaleL’autore Pablogrind

Lascia un commento