Vložení JSON nebo XML jako tříd
V sadě Visual Studio můžete zkopírovat text ze souborů JSON nebo XML a pak text vložit jako třídy v kódu jazyka C# nebo Visual Basic . Uděláte to tak, že vyberete Upravit>vložit jinak a zvolíte Vložit JSON jako třídy nebo Vložit XML jako třídy.
Tip
Pokud v nabídce Upravit nevidíte možnost Vložit jinak, ujistěte se, že máte nainstalované aspoň jednu z následujících úloh: ASP.NET vývoj pro web, vývoj pro Azure nebo vývoj desktopových aplikací .NET. Pak se ujistěte, že jste vybrali programový soubor aplikace. Například pro aplikaci v jazyce C# vyberte soubor Program.cs v Průzkumník řešení.
JSON (JavaScript Object Notation) a XML (eXtensible Marguage Language) jsou podobné tomu, že se používají k ukládání a přenosu dat. JSON je ale méně podrobné a může používat pole.
Příklady
Před použitím příkazu Vložit JSON jako třídy nebo příkazu Vložit XML jako třídy v sadě Visual Studio vytvořte zástupný symbol pro text. Pro aplikaci v jazyce C# můžete k tomu použít prázdnou deklaraci oboru názvů, jak je znázorněno na následujícím snímku obrazovky:
Potom vložte text JSON nebo XML do složených závorek.
JSON
Tady je příklad textu JSON:
{
"Colors": [
{
"numberKey": 1,
"isPrimary": true,
"listColors": ["Red", "Blue", "Yellow"]
},
{
"numberKey": 2,
"isPrimary": false,
"listColors": ["Purple", "Green", "Orange"]
} ]
}
Tady je snímek obrazovky, který ukazuje, jak Visual Studio převádí text JSON na třídy:
XML
Tady je příklad textu 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>
Tady je příklad kódu, který ukazuje, jak Visual Studio převádí text XML na třídy:
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;
}
}
}
}