> 백엔드 개발 > C#.Net 튜토리얼 > C#으로 구현된 json 직렬화 및 역직렬화 코드 예제

C#으로 구현된 json 직렬화 및 역직렬화 코드 예제

高洛峰
풀어 주다: 2017-01-18 09:14:12
원래의
1885명이 탐색했습니다.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

using System;

using System.Collections.Generic;

using System.Web.Script.Serialization;

using System.Configuration;

using System.Runtime.Serialization.Json;

using System.Runtime.Serialization;

using System.IO;

using System.Text;

  

  

namespace WebApplication1

{

  

  //方法一:引入System.Web.Script.Serialization命名空间使用 JavaScriptSerializer类实现简单的序列化

  [Serializable]

  public class Person

  {

      

    private int id;

    /// <summary>

    /// id

    /// </summary>

    public int Id

    {

      get { return id; }

      set { id = value; }

    }

  

    private string name;

    /// <summary>

    /// 姓名

    /// </summary>

    public string Name

    {

      get { return name; }

      set { name = value; }

    }

  }

  

  //方法二:引入 System.Runtime.Serialization.Json命名空间使用 DataContractJsonSerializer类实现序列化

  //可以使用IgnoreDataMember:指定该成员不是数据协定的一部分且没有进行序列化,DataMember:定义序列化属性参数,使用DataMember属性标记字段必须使用DataContract标记类 否则DataMember标记不起作用。

  [DataContract]

  public class Person1

  {

      

    [IgnoreDataMember]

    public int Id { get; set; }

  

    [DataMember(Name = "name")]

    public string Name { get; set; }

    [DataMember(Name = "sex")]

    public string Sex { get; set; }

  

  }

  

  public partial class _Default : System.Web.UI.Page

  {

    string constr = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;

      

    protected void Page_Load(object sender, EventArgs e)

    {

        

      Person p1 = new Person();

      p1.Id = 1;

      p1.Name = "dxw";

      Person p2 = new Person();

      p2.Id = 2;

      p2.Name = "wn";

  

      List<Person> listperson = new List<Person>();

      listperson.Add(p1);

      listperson.Add(p2);

  

      JavaScriptSerializer js = new JavaScriptSerializer();

      //json序列化

      string s = js.Serialize(listperson);

      Response.Write(s);

  

  

  

      //方法二

      Person1 p11 = new Person1();

      p11.Id = 1;

      p11.Name = "hello";

      p11.Sex = "男";

      DataContractJsonSerializer json = new DataContractJsonSerializer(p11.GetType());

  

      string szJson = "";

  

      //序列化

  

      using (MemoryStream stream = new MemoryStream())

  

      {

  

        json.WriteObject(stream, p11);

  

        szJson = Encoding.UTF8.GetString(stream.ToArray());

  

        Response.Write(szJson);

      }

  

      //反序列化

  

      //using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szJson)))

  

      //{

  

      //  DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(People));

  

      //  Person1 _people = (Person1)serializer.ReadObject(ms);

  

      //}

     }

      

  

  

    protected void Button1_Click(object sender, EventArgs e)

    {

      Response.Write(constr);

    }

  

  

  }

로그인 후 복사

C#으로 구현된 json 직렬화 및 역직렬화 코드 예제와 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿