>  기사  >  웹 프론트엔드  >  .net 엔터티 클래스와 json 간의 변환 방법 요약

.net 엔터티 클래스와 json 간의 변환 방법 요약

php中世界最好的语言
php中世界最好的语言원래의
2018-04-25 13:41:152198검색

이번에는 .net 엔터티 클래스와 json 변환 방법에 대한 요약을 가져왔습니다. .net 엔터티 클래스와 json 변환 시 주의 사항은 무엇입니까?

.net 엔터티 클래스와 json 간 변환 시 다음 사항에 주의하세요.

1 jsonhelp 작성 시 추가된 참조입니다. System.Runtime.Serialization.Json;
2. 엔터티 클래스를 공개로 선언해야 합니다.

json도움말 코드:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.Serialization.Json;
using System.IO;
namespace JsonTest
{
  class JsonHelp
  {
    public JsonHelp()
  {
    //
    // TODO: Add constructor logic here
    //
  }
  /// <summary>
  /// 把对象序列化 JSON 字符串 
  /// </summary>
  /// <typeparam name="T">对象类型</typeparam>
  /// <param name="obj">对象实体</param>
  /// <returns>JSON字符串</returns>
  public static string GetJson<T>(T obj)
  {
    //记住 添加引用 System.ServiceModel.Web 
    /**
     * 如果不添加上面的引用,System.Runtime.Serialization.Json; Json是出不来的哦
     * */
    DataContractJsonSerializer json = new DataContractJsonSerializer(typeof(T));
    using (MemoryStream ms = new MemoryStream())
    {
      json.WriteObject(ms, obj);
      string szJson = Encoding.UTF8.GetString(ms.ToArray());
      return szJson;
    }
  }
  /// <summary>
  /// 把JSON字符串还原为对象
  /// </summary>
  /// <typeparam name="T">对象类型</typeparam>
  /// <param name="szJson">JSON字符串</param>
  /// <returns>对象实体</returns>
  public static T ParseFormJson<T>(string szJson)
  {
    T obj = Activator.CreateInstance<T>();
    using (MemoryStream ms = new MemoryStream (Encoding.UTF8.GetBytes(szJson)))
    {
      DataContractJsonSerializer dcj = new DataContractJsonSerializer(typeof(T));
      return (T)dcj.ReadObject(ms);
    }
  }
 
  }
}

엔티티 클래스 코드:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace JsonTest
{
 public class testData
  {
    public testData()
  {
  }
  public int Id { get; set; }
  public string Name { get; set; }
  public string Sex { get; set; }
  }
}

콘솔 애플리케이션 테스트 코드:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace JsonTest
{
  class Program
  {
    static void Main(string[] args)
    {
      //实体类转json
      testData t1 = new testData();
      t1.Id = 1;
      t1.Name = "001姓名";
      t1.Sex = "男";
      testData t2 = new testData();
      t2.Id = 2;
      t2.Name = "002姓名";
      t2.Sex = "男";
      testData t3 = new testData();
      t3.Id = 3;
      t3.Name = "003姓名";
      t3.Sex = "男";
      List<testData> tlist = new List<testData>();
      tlist.Add(t1);
      tlist.Add(t2);
      tlist.Add(t3);
     Console.WriteLine(JsonHelp.GetJson<List<testData>>(tlist));
      // Console.ReadKey();
      //json转实体类
     List<testData> tl = JsonHelp.ParseFormJson <List<testData>>(JsonHelp.GetJson<List<testData>>(tlist));
     Console.WriteLine(tl.Count);
     Console.WriteLine(tl[0].Name);
     Console.ReadKey();
    }
  }
}

Believe 이 기사의 사례를 읽은 후에는 방법을 익혔습니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!

추천 자료:

jQuery는 수직 반투명 아코디언 효과를 생성합니다

jquery는 탐색 메뉴 마우스 프롬프트 기능을 구현합니다

위 내용은 .net 엔터티 클래스와 json 간의 변환 방법 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.