Estoy tratando de hacer JSON webservice en C# .NET. Una cadena json que es devuelta por el método web pero contiene la estructura xml como:

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

Vi este artículo antes no era muy útil para mí.

Así que mi problema es, que la cadena json no es devuelto en su estado puro formato. No quiero que la versión de xml y la xmlns cadena. I plan para consumir el servicio web en Android después.

Alguien me puede ayudar?

Gracias

  • Por qué no vas a usar un servicio WCF ?
  • Yo prefiero JABÓN porque he trabajado en esto por un largo tiempo. Si u creo que WCF es lo que necesito, u puede decirme cómo puedo conectar a una base de datos SQL, el fuego de una consulta select*, obtener el resultado como un conjunto de datos, convertir el conjunto de datos a puro json y luego devolverlo ?U puede decirme cómo se realiza mediante WCF, porque no tengo idea de que
  • Me dijo que porque lo he utilizado ksoap consumir muchos webservices en mi lado del cliente. Yo quería que mi servicio web para devolver un puro json porque me estoy encontrando difícil incluso para devolver una Cadena json desde mi webservice. Usted puede ver this para entender mejor mi problema
  • para dejar las cosas claras,creo que «Json», porque WCF paquetes son más grandes (como se ve en feedler),que hace que las aplicaciones móviles. más pesado. Junto a esto, el uso de tecnologías sin proxy generación, tales como la Ksoap wcf servicios no nos hace sentido como se usa comúnmente con Android. (Como una nota de Descanso de los servicios de apoyo que nos generación de proxy,también para android+WCF nos apoyan OData de salida)
InformationsquelleAutor Parth Doshi | 2011-11-29

5 Comentarios

  1. 4

    Si usted decorar su interfaz con los atributos de la solicitud y el formato de respuesta se puede obtener estándar de WCF para regresar e interpretar json adecuado.

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

    El problema es, sin embargo, que WCF innata del DataContractJsonSerializer no siempre devuelve json adecuado. Su serialización de los diccionarios es problemático en el mejor, ya que se serializa como una lista de clave/valor de pares de bases. Para remediar esto, uno tiene que volver Stream de los métodos de servicio y realizar la serialización a mano (usando Json.NET o ServiceStack para realizar la serialización). En tales casos es probablemente aconsejable el uso de WebAPI, pero para algunos casos WCF normal, con la utilización de las mencionadas condecoraciones.

  2. 2

    Puede intentar construir su servicio usando la Api de REST. Usted puede encontrar la información sobre el RESTO con WCF en este enlace

    Usted puede descargar el kit de herramientas para las muestras sobre cómo construir descanso de servicios wcf que devuelve la respuesta json.

  3. 1

    Esto tampoco es un problema cuando se utiliza ServiceStack, es decir, cada resultado obtener la convierte automáticamente en la Respuesta ContentType usted desea, es decir, este es el código completo de un servicio web simple que puede ser llamado a través de todos los VERBOS HTTP (GET,POST,PUT,DELETE) en todos los formatos soportados (no config necesario), es decir, JSON, XML, HTML, JSV, CSV, JABÓN, incluso por una directa Formulario HTML x-www-form-urlencoded o QueryString solicitud:

    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 };
        }
    }

    Puede invalidar la respuesta que se obtiene con la Accept:application/json Encabezado HTTP o simplemente agregando el ?format=json en la QueryString.

    Ver el ServiceStack del Ejemplo: Hola Mundo a ver un ejemplo en vivo por encima de la de los servicios web.

Dejar respuesta

Please enter your comment!
Please enter your name here