Incollare JSON o XML come classi

In Visual Studio è possibile copiare testo da file JSON o XML e quindi incollare il testo come classi nel codice C# o Visual Basic . A tale scopo, selezionare Modifica>incolla speciale e scegliere Incolla JSON come classi o Incolla XML come classi.

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

Suggerimento

Se non viene visualizzata l'opzione Incolla speciale nel menu Modifica, assicurarsi di avere almeno uno dei carichi di lavoro seguenti installati: ASP.NET e sviluppo Web, sviluppo di Azure o sviluppo desktop .NET. Assicurarsi quindi di selezionare il file di programma per l'app. Ad esempio, per un'app C#, selezionare il file Program.cs in Esplora soluzioni.

JSON (JavaScript Object Notation) e XML (eXtensible Markup Language) sono simili in quanto vengono usati entrambi per archiviare e trasportare i dati. JSON, tuttavia, è meno dettagliato e può usare matrici.

Esempi

Prima di usare il comando Incolla JSON come classi o incolla XML come classi in Visual Studio, creare un segnaposto per il testo. Per un'app C#, è possibile usare una dichiarazione di spazio dei nomi vuota per farlo, come illustrato nello screenshot seguente:

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

Incollare quindi il testo JSON o XML all'interno delle parentesi graffe.

JSON

Ecco un esempio di testo JSON:

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

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

Ecco uno screenshot che mostra come Visual Studio converte il testo JSON in classi:

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

XML

Ecco un esempio di testo 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>

Ecco un esempio di codice che mostra come Visual Studio converte il testo XML in classi:

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

Vedi anche