Compartir a través de


Pegar JSON o XML como clases

En Visual Studio, puede copiar texto de archivos JSON o XML y, a continuación, pegar el texto como clases en el código de C# o Visual Basic. Para ello, seleccione Edición>Pegado especial y elija Pegar JSON como clases o Pegar XML como clases.

Screenshot of the Paste Special option from the Edit menu in Visual Studio.

Sugerencia

Si no ve la opción Pegar especial en el menú Editar, asegúrese de que tiene instaladas al menos una de las siguientes cargas de trabajo: ASP.NET y desarrollo web, desarrollo de Azure o desarrollo de escritorio de .NET. A continuación, asegúrese de seleccionar el archivo de programa de la aplicación. Por ejemplo, con una aplicación C#, seleccione el archivo Program.cs en Explorador de soluciones.

JSON (JavaScript Object Notation, es decir, notación de objetos JavaScript) y XML (eXtensible Markup Language, es decir, lenguaje de marcado extensible) se asemejan en que ambos se usan para almacenar y transportar datos. Sin embargo, JSON es menos detallado y puede usar matrices.

Ejemplos

Antes de usar el comando Pegar JSON como clases o el comando Pegar XML como clases en Visual Studio, cree un marcador de posición para el texto. Para una aplicación de C#, puede usar una declaración de espacio de nombres vacía para ello, como se muestra en la captura de pantalla siguiente:

Screenshot of an empty namespace declaration in Visual Studio that's used as a placeholder to paste in JSON or XML text.

A continuación, pegue el texto JSON o XML dentro de las llaves.

JSON

Este es un ejemplo de texto JSON:

{
  "Colors": [
 {
   "numberKey": 1,
   "isPrimary": true,
   "listColors": ["Red", "Blue", "Yellow"]
 },

 {
   "numberKey": 2,
   "isPrimary": false,
   "listColors": ["Purple", "Green", "Orange"]
 } ]
}

Esta es una captura de pantalla que muestra cómo Visual Studio convierte el texto JSON en clases:

Screenshot of the JSON example text converted to classes by using the Paste Special feature in Visual Studio.

XML

Este es un ejemplo de texto XML:

<root>
 <color>
  <id>01</id>
  <name>red</name>
  <type>primary</type>
 </color>
 <color>
  <id>02</id>
  <name>green</name>
  <type>secondary</type>
 </color>
</root>

Este es un ejemplo de código que muestra cómo Visual Studio convierte el texto XML en clases:

using System;

namespace PasteDemo
{
    // NOTE: Generated code may require at least .NET Framework 4.5 or .NET Core/Standard 2.0.
    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
    public partial class root
    {

        private rootColor[] colorField;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("color")]
        public rootColor[] color
        {
            get
            {
                return this.colorField;
            }
            set
            {
                this.colorField = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public partial class rootColor
    {

        private byte idField;

        private string nameField;

        private string typeField;

        /// <remarks/>
        public byte id
        {
            get
            {
                return this.idField;
            }
            set
            {
                this.idField = value;
            }
        }

        /// <remarks/>
        public string name
        {
            get
            {
                return this.nameField;
            }
            set
            {
                this.nameField = value;
            }
        }

        /// <remarks/>
        public string type
        {
            get
            {
                return this.typeField;
            }
            set
            {
                this.typeField = value;
            }
        }
    }
}

Vea también