NET em JSON serialização e desserialização três maneiras

Primeiros Dicas popularizar:

JSON e JS objetos Huzhuan

    Para conseguir a conversão de JSON objecto cadeia utilizando a JSON.stringify () Método:

var json = JSON.stringify ({a: 'Vinkong', b: 'Céu'}); // 结果 是 '{ "a": "Vinkong", "b": "Sky"}'

    Para conseguir a conversão de JSON um objecto usando a JSON.parse () Método:

var obj = JSON.parse ( '{ "a": "Vinkong", "b": "Sky"}'); // 结果 是 {a: 'Vinkong', b: 'Sky'}

  

O seguinte é fornecido Demonstração
estabelecer uma classe Student

 

usando Newtonsoft.Json;
usando System;
utilizando System.Collections.Generic;
usando System.Linq;
usando System.Runtime.Serialization;
usando System.Text;
usando System.Threading.Tasks;
usando System.Web.Script.Serialization; 

namespace ConsoleApplication1 
{ 
    [DataContract] // DataContractJsonSerializer方式必须加的契约
    classe Student 
    { 
        
     
        private  string de nome; 
        [DataMember] // DataContractJsonSerializer方式必须加的契约 
        [ScriptIgnore] //JavaScriptSerializer é rotulado usando o atributo de serialização não é 
        [JsonIgnore] // usar JSON.NET modalidade da seqüência tag não atribui 
        pública  de Cordas _Name 
        { 
            GET { retornar o nome;}
             SET {Name = valor;} 
        } 
        [o DataMember] 
        Privada  int   Age; 

        público  int _Age 
        { 
            GET { return Idade;}
             SET {Age = valor;} 
        } 
        [o DataMember] 
        privado  de Cordas Sex; 

        pública  de Cordas _Sex
        { 
            Obter { return sexo; }
             Set {sexo = valor; } 
        } 

    } 
}

código de teste de gravação:

usando System;
utilizando System.Collections.Generic;
usando System.Linq;
usando System.Text;
usando System.Threading.Tasks;
usando System.Web.Script.Serialization;
usando Newtonsoft.Json;
usando System.Runtime.Serialization;
usando System.Runtime.Serialization.Json;
usando System.IO;
namespace ConsoleApplication1 
{ 
    classe Programa 
    { 
        estática  vazio Main ( corda [] args) 
        { 

            #region第一种方式:使用JavaScriptSerializer方式
            STU Student = new new Student (); 
            stu._Name = " vinkong " ; 
            stu._Age = 15 ; 
            stu._Sex = " macho " ; 
            JavaScriptSerializer jsonSerialize = new new JavaScriptSerializer ();
             // using namespace JavaScriptSerializer forma devam ser introduzidas, este no System.Web.Extensions.dll montagem em 
             // o usando System.Web.Script.Serialization;
             // NOTA: disponíveis [ScriptIgnore] marca não é serialização atributo
             // objecto sequência alvo 
            cadeia= Strjson jsonSerialize.Serialize (STU);
             // Json desserializado 
            STU = jsonSerialize.Deserialize <Student> (strjson); 

            Console.WriteLine ( " modo 1. Use JavaScriptSerializer " ); 
            Console.WriteLine ( " serialização: " + strjson); 
            Console.WriteLine ( " deserialização: " + stu._Name + "" + "  " + "" + stu._Age + "" + "  " + "  " + STU._Sex + "");
             #Endregion 

            #region uso JSON.NET maneira
             // utilizar a biblioteca namespace Json.NET Newtonsoft.Json necessidade de introduzir o uso;
             // NOTA: Disponível [JsonIgnore] da seqüência tag não atribui 
            Student STU2 = new new Student () ; 
            stu2._Name = " vinkong2 " ; 
            stu2._Age = 15 ; 
            stu2._Sex = " F " ;
             // serialização objecto Json 
            Cadeia strjson2 = JsonConvert.SerializeObject (STU2);
             // Json desserializadas
            stu2 = JsonConvert.DeserializeObject <Student> (strjson2); 
            Console.WriteLine ( " 2.使用JSON.NET方式" ); 
            Console.WriteLine ( " 序列化: " + strjson2); 
            Console.WriteLine ( " 反序列化: " + stu2._Name + "" + "  " + "" + stu2._Age + "" + "  " + "  " + + stu2._Sex "" );
            

            // uso caminho necessidade DataContractJsonSerializer introduzir namespaces, em System.Runtime.Serialization.dll. In.
             // o uso System.Runtime.Serialization.Json;
              // contrato entidade [DataMember], [DataContract], usando DataContractJsonSerializer serialização e desserialização devem ser adicionados, podem ser adicionados aos outros dois métodos não adicionar. 
            Stu3 = Student novo novo Student (); 
            stu3._Name = " vinkong3 " ; 
            stu3._Age = 22 é ; 
            stu3._Sex = " F " ; 

            Cadeia strjson3 = "" ;
             // objecto serialização Json 
            a utilização(Fluxo = MemoryStream novo MemoryStream ()) 
            { 
                DataContractJsonSerializer jsonSerialize2 = novo DataContractJsonSerializer (stu3.GetType ()); 
                jsonSerialize2.WriteObject (fluxo, stu3); 
                strjson3 = Encoding.UTF8.GetString (stream.ToArray ()); 
            } 
            // Json反序列化对象
            utilizando (fluxo = MemoryStream novo MemoryStream (Encoding.UTF8.GetBytes (strjson3))) 
            { 
                DataContractJsonSerializer jsonSerialize3 = novo DataContractJsonSerializer ( typeof (Estudante));
                stu3 = (Student) jsonSerialize3.ReadObject (fluxo); 
            } 
            Console.WriteLine ( " 3.使用DataContractJsonSerializer方式" ); 
            Console.WriteLine ( " 序列化: " + strjson3); 
            Console.WriteLine ( " 反序列化: " + stu3._Name + "" + "  " + "" + stu3._Age + "" + "  " + "  " + + stu3._Sex "" ); 
            Console.ReadKey (); 
            #endregion

          
        } 
    } 
}

JSON.NET maneira de fazer uso de serialização e de-serialização, o bom desempenho.

 

Acho que você gosta

Origin www.cnblogs.com/Vinkong/p/12599013.html
Recomendado
Clasificación