C \ # JSon 직렬 화 도구 -- Newtonsoft. JSon 소개 및 사용
3092 단어 서열 화 와 반 서열 화C#Newtonsoft.Json
기능 이 비교적 많 고 효율 이 비교적 높 으 며 정부 에서 비교 데 이 터 를 제시 하 다.
50% faster than DataContractJsonSerializer, and 250% faster than JavaScriptSerializer.
비교적 자주 사용 하 는 기능 은 직렬 화 된 헤 어 직렬 화 외 에 도 Linq To JSon, JSon Path, XML support 등 이 있다.
더 자세 한 내용 참고:http://www.newtonsoft.com/json/help/html/JsonNetVsDotNetSerializers.htm
사용 방법 간단:
사용 명령
Install-Package Newtonsoft.Json
또는 우 클릭, 프로젝트 > Nuget 패키지 관리, 추가간단 한 사용 사례 는 다음 과 같다.
1. 정의 클래스:
///
///
///
public class Student
{
public int ID { get; set; }
public string Name { get; set; }
public Class Class { get; set; }
}
///
///
///
public class Class
{
public int ID { get; set; }
public string Name { get; set; }
}
2. 직렬 화, 반 직렬 화 실체 대상, 실체 집합, 익명 대상:
Student stu = new Student();
stu.ID = 1;
stu.Name = " ";
stu.Class = new Class() { ID = 0121, Name = "CS0121" };
// 1
// 、
// :{"ID":1,"Name":" ","Class":{"ID":121,"Name":"CS0121"}}
string json1 = JsonConvert.SerializeObject(stu);
Console.WriteLine(json1);
Student stu2 = JsonConvert.DeserializeObject(json1);
Console.WriteLine(stu2.Name + "---" + stu2.Class.Name);
// ,
List stuList = new List() { stu, stu2 };
string json2 = JsonConvert.SerializeObject(stuList);
Console.WriteLine(json2);
List stuList2 = JsonConvert.DeserializeObject>(json2);
foreach (var item in stuList2)
{
Console.WriteLine(item.Name + "----" + item.Class.Name);
}
// ,
// obj.GetType().Name: "<>f__AnonymousType0`2"
var obj = new { ID = 2, Name = " " };
string json3 = JsonConvert.SerializeObject(obj);
Console.WriteLine(json3);
object obj2 = JsonConvert.DeserializeAnonymousType(json3, obj);
Console.WriteLine(obj2.GetType().GetProperty("ID").GetValue(obj2));
object obj3 = JsonConvert.DeserializeAnonymousType(json3, new { ID = default(int), Name = default(string) });
Console.WriteLine(obj3.GetType().GetProperty("ID").GetValue(obj3));
// , ,
Student stu3 = new Student();
stu3 = JsonConvert.DeserializeAnonymousType(json3, new Student());
Console.WriteLine(stu3.Name);
2. 문자열 의 직렬 화 를 제어 하고 더욱 편리 합 니 다.
JsonSerializerSettings settings = new JsonSerializerSettings();
settings.DateFormatString = "yyyy-MM-dd";
string str = JsonConvert.SerializeObject(_Context.students.First(), settings);
Console.WriteLine(str);
{"sno":"101","sname":" ","ssex":" ","sbirthday":"1976-02-20","_class":"95033"}
더 많은 상용 실례:
Linq To JSON 1
LINQ to JSON 실례 2 기타 참고 블 로그:http://www.cnblogs.com/freshman0216/p/4161800.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Rider (추가 : Visual Studio for Mac도)에서는 C#으로 작성된 Unity 표준 클래스를 직접 볼 수있는 이야기여러분은 Unity 코드를 어떤 편집기를 사용하여 작성합니까? Visual Studio (for Mac 포함) Visual Studio Code 다양한 옵션이 있다고 생각하지만 Rider를 사용하고 있습니다. 최근 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.