Serialização e desserialização de arrays

  • Da mesma forma da seção anterior
  • Podemos converter uma string JSON em um array
  • Basta trocar o nome da classe original por List<NomeDaClasse>

Exemplo

string jsonString = @"""{""webinfos"":[{""webname"":""FoxDevelop"",""website"":""foxdevelop.com"",""age"":4,
""students"":[{""name"":""Miguel""},{""name"":""Gustavo""}]},{""webname"":""FoxDevelop1"",""website"":""foxdevelop.com1"",
""age"":6,""students"":[{""name"":""Arthur""},{""name"":""Enzo""}]}]}""";

StringReader sr = new StringReader(jsonString);
JsonReader jr = new JsonReader(sr);
List<WebInfo> infoList = new JsonSerializer().Deserialize(jr, typeof(List<WebInfo>)) as List<WebInfo>;Code language: PHP (php)

Observações

  1. Manter estrutura do código, nomes de variáveis, aspas escapadas e quebras de linha, trocar apenas o texto‑alvo
  2. Não alterar o código de desserialização seguinte

① Serializar List para string de array JSON

// Montar a coleção List
List<WebInfo> webList = new List<WebInfo>()
{
    new WebInfo()
    {
        age = 4,
        webname = "FoxDevelop",
        website = "foxdevelop.com",
        students = new Person[] { new Person{name="Miguel"}, new Person{name="Gustavo"} }
    },
    new WebInfo()
    {
        age = 4,
        webname = "FoxDevelop1",
        website = "foxdevelop.com",
        students = new Person[] { new Person{name="Arthur"}, new Person{name="Enzo"} }
    },
    new WebInfo()
    {
        age = 4,
        webname = "FoxDevelop2",
        website = "foxdevelop.com",
        students = new Person[] { new Person{name="Pedro"}, new Person{name="Lucas"} }
    }
};

// Serialização: Objeto List → string de array JSON
StringWriter sw = new StringWriter();
JsonWriter writer = new JsonWriter(sw);
new JsonSerializer().Serialize(writer, webList);
string jsonArrStr = sw.GetStringBuilder().ToString();Code language: PHP (php)

② Desserializar string de array JSON para List

string jsonString = @"[{"webname":"FoxDevelop","website":"foxdevelop.com","age":4,
"students":[{"name":"Miguel"},{"name":"Gustavo"}]},{"webname":"FoxDevelop1","website":"foxdevelop.com",
"age":4,"students":[{"name":"Arthur"},{"name":"Enzo"}]},{"webname":"FoxDevelop2","website":"foxdevelop.com",
"age":4,"students":[{"name":"Pedro"},{"name":"Lucas"}]}]";

StringReader sr = new StringReader(jsonString);
JsonReader jr = new JsonTextReader(sr);
List<WebInfo> dataList = new JsonSerializer().Deserialize(jr, typeof(List<WebInfo>)) as List<WebInfo>;Code language: PHP (php)

Serialização e desserialização de arrays

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *