Colar JSON ou XML como classes
No Visual Studio, você pode copiar texto de arquivos JSON ou XML e colá-lo como classes em seu código C# ou Visual Basic. Para fazer isso, selecione Editar>Colar Especial e escolha Colar JSON como Classes ou Colar XML como Classes.
Dica
Se você não vir a opção Colar Especial no menu Editar, verifique se você tem pelo menos uma das seguintes cargas de trabalho instaladas: ASP.NET e desenvolvimento na Web, desenvolvimento do Azure ou desenvolvimento de área de trabalho do .NET. Em seguida, selecione o arquivo de programa para seu aplicativo. Por exemplo, para um aplicativo C#, selecione o arquivo Program.cs no Gerenciador de Soluções.
JSON (JavaScript Object Notation) e XML (eXtensible Markup Language) são semelhantes no sentido em que ambos são usados para armazenar e transportar dados. O JSON, no entanto, é menos detalhado e pode usar matrizes.
Exemplos
Antes de usar o comando Colar JSON como Classes ou Colar XML como Classes no Visual Studio, crie um espaço reservado para o texto. Para um aplicativo C#, você pode usar uma declaração de namespace vazia para fazer isso, conforme mostrado na seguinte captura de tela:
Em seguida, cole o texto JSON ou XML dentro das chaves.
JSON
Este é um texto JSON de exemplo:
{
"Colors": [
{
"numberKey": 1,
"isPrimary": true,
"listColors": ["Red", "Blue", "Yellow"]
},
{
"numberKey": 2,
"isPrimary": false,
"listColors": ["Purple", "Green", "Orange"]
} ]
}
Aqui está uma captura de tela que mostra como o Visual Studio converte texto JSON em classes:
XML
Aqui está um exemplo 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>
Aqui está um exemplo de código que mostra como o Visual Studio converte o texto XML em classes:
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;
}
}
}
}