C\#에서 제 이 슨 의 반 직렬 화 실현 방법

3850 단어 C#json역 직렬 화
머리말
JSon 반 서열 화 는 두 가지 방식 이 있 는데 하 나 는 실 체 를 생 성하 고 대량의 데 이 터 를 처리 하기에 편리 하 며 복잡 도가 약간 높다.하 나 는 익명 류 로 쓰 고 데 이 터 를 읽 기 편 하 며 비교적 간단 하 다.
Newtonsoft.JSon 을 사용 하여 nuget 에서 가 져 올 수 있 습 니 다.
JSon 원본 데이터:

 var data = "{'jingdong_ldop_receive_trace_get_responce':{'code':'0','querytrace_result':{'data':[{'opeTitle':'    ','opeRemark':'         ','opeTime':'2011/04/17 18:23:20','opeName':'    ','waybillCode':'bc00000001'},{'opeTitle':'    ','opeRemark':'     ,    ','opeTime':'2011/04/23 08:29:56','opeName':'    ','waybillCode':'bc00000001'},{'opeTitle':'     ','opeRemark':'       ,      ,','opeTime':'2011/04/23 08:36:28','opeName':'    ','waybillCode':'bc00000001'},{'opeTitle':'  ','opeRemark':'       ,         ','opeTime':'2011/04/23 09:47:13','opeName':'    ','waybillCode':'bc00000001'}],'messsage':'  ','code':100}}}";
첫 번 째:익명 으로 생 성 되 며,JSon 의 형식 에 따라 밖에서 안 으로 한 걸음 한 걸음 씩 쓰 는 것 입 니 다.비 배열 은 new{},배열 은 new[]{},이름 은 json 의 이름 과 일치 해 야 합 니 다.

//        
   {
    var JsonDataForVar = Newtonsoft.Json.JsonConvert.DeserializeAnonymousType(data, new
    {
     jingdong_ldop_receive_trace_get_responce = new
     {
      code = string.Empty,
      querytrace_result = new
      {
       data = new[] {
       new {
         opeTitle=string.Empty,
         opeRemark=string.Empty,
         opeTime=string.Empty,
         waybillCode=string.Empty,
         opeName=string.Empty
       }
      }
      }
     }
    });

    foreach (var item in JsonDataForVar.jingdong_ldop_receive_trace_get_responce.querytrace_result.data)
    {
     var a = item.opeTitle;
     var b = item.opeRemark;
     var c = item.opeTime;
     var d = item.waybillCode;
     var f = item.opeName;

    }
   }
두 번 째:실체 사용
//실체 부분,내부 에서 외부 로 실 체 를 쓰 는 것 을 권장 합 니 다.이름 은 json 의 이름과 일치 해 야 합 니 다[간편 한 방법,JSon 을 검색 하여 실 체 를 바 꾸 고 JSon 문자열 을 가 져 와 실 체 를 자동 으로 생 성 합 니 다]

public class Item
  {
   public string opeTitle { get; set; }
   public string opeRemark { get; set; }
   public string opeTime{ get; set; }
   public string waybillCode { get; set; }
   public string opeName { get; set; }
  }

  public class JdResult
  {
   public string code { get; set; }
   public string msg { get; set; }
   public List<Item> data { get; set; }
  }

  public class JdResponce
  {
   public string code { get; set; }

   public JdResult querytrace_result { get; set; }
  }

  public class JdBody
  {
   public JdResponce jingdong_ldop_receive_trace_get_responce { get; set; }
  }
//방법

//      
   {
    var JsonDataForClass = Newtonsoft.Json.JsonConvert.DeserializeAnonymousType(data, new JdBody());

    foreach (var item in JsonDataForClass.jingdong_ldop_receive_trace_get_responce.querytrace_result.data)
    {
     var a = item.opeTitle;
     var b = item.opeRemark;
     var c = item.opeTime;
     var d = item.waybillCode;
     var f = item.opeName;
    }
   }
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기