배열 직렬화 및 역직렬화

  • 이전 절과 비슷한 방식입니다
  • JSON 문자열을 배열로 변환할 수 있습니다
  • 원래 클래스 이름을 List<클래스이름> 으로 바꾸기만 하면 됩니다

예시

string jsonString = @"""{""webinfos"":[{""webname"":""FoxDevelop"",""website"":""foxdevelop.com"",""age"":4,
""students"":[{""name"":""민준""},{""name"":""지훈""}]},{""webname"":""FoxDevelop1"",""website"":""foxdevelop.com1"",
""age"":6,""students"":[{""name"":""준호""},{""name"":""도윤""}]}]}""";

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)

설명

  1. 코드 구조, 변수명, 이스케이프 큰따옴표, 줄바꿈은 그대로 유지하고 지정 텍스트만 교체
  2. 이후 역직렬화 로직 코드는 수정하지 않습니다

① List 를 JSON 배열 문자열로 직렬화

// List 컬렉션 생성
List<WebInfo> webList = new List<WebInfo>()
{
    new WebInfo()
    {
        age = 4,
        webname = "FoxDevelop",
        website = "foxdevelop.com",
        students = new Person[] { new Person{name="민준"}, new Person{name="지훈"} }
    },
    new WebInfo()
    {
        age = 4,
        webname = "FoxDevelop1",
        website = "foxdevelop.com",
        students = new Person[] { new Person{name="준호"}, new Person{name="도윤"} }
    },
    new WebInfo()
    {
        age = 4,
        webname = "FoxDevelop2",
        website = "foxdevelop.com",
        students = new Person[] { new Person{name="서준"}, new Person{name="하준"} }
    }
};

// 직렬화:List 객체 → JSON 배열 문자열
StringWriter sw = new StringWriter();
JsonWriter writer = new JsonWriter(sw);
new JsonSerializer().Serialize(writer, webList);
string jsonArrStr = sw.GetStringBuilder().ToString();Code language: PHP (php)

② JSON 배열 문자열을 List 로 역직렬화

string jsonString = @"[{"webname":"FoxDevelop","website":"foxdevelop.com","age":4,
"students":[{"name":"민준"},{"name":"지훈"}]},{"webname":"FoxDevelop1","website":"foxdevelop.com",
"age":4,"students":[{"name":"준호"},{"name":"도윤"}]},{"webname":"FoxDevelop2","website":"foxdevelop.com",
"age":4,"students":[{"name":"서준"},{"name":"하준"}]}]";

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)

배열 직렬화 및 역직렬화

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다