programing

.NET 4에는 JSON 시리얼라이저/디시리얼라이저가 내장되어 있습니까?

linuxpc 2023. 3. 7. 21:08
반응형

.NET 4에는 JSON 시리얼라이저/디시리얼라이저가 내장되어 있습니까?

.NET 4에는 JSON 데이터를 시리얼화/비직렬화하는 클래스가 포함되어 있습니까?

  • JSON과 같은 서드파티 라이브러리가 있는 것으로 알고 있습니다.NET입니다만, 에 직접 짜넣어진 것을 찾고 있습니다.그물.

  • MSDN에서 데이터 계약을 찾았는데 Winforms나 WPF가 아닌 WCF용입니다.

DataContractJsonSerializer 클래스는 원하는 장소에서 사용할 수 있습니다.이것은 .net 클래스일 뿐 WCF에 한정되지 않습니다.사용방법에 대한 자세한 내용은 이쪽과 이쪽.

JavaScriptSerializer 클래스가 있습니다(단,System.Web.ExtensionsWinForms/WPF 어플리케이션에서는 클래스가 정상적으로 동작합니다).또한 DataContractJsonSerializer 클래스가 WCF용으로 설계되어 있어도 클라이언트애플리케이션에서는 정상적으로 동작합니다.

JSON을 직렬화/직렬화하려면 이 일반 클래스를 사용합니다.다음과 같이 복잡한 데이터 구조를 쉽게 직렬화할 수 있습니다.

Dictionary<string, Tuple<int, int[], bool, string>>

JSON 문자열에 접속하여 응용 프로그램 설정 또는 기타에 저장합니다.

public class JsonSerializer
{
    public string Serialize<T>(T Obj)
    {
        using (var ms = new MemoryStream())
        {
            DataContractJsonSerializer serialiser = new DataContractJsonSerializer(typeof(T));
            serialiser.WriteObject(ms, Obj);
            byte[] json = ms.ToArray();
            return Encoding.UTF8.GetString(json, 0, json.Length);
        }
    }

    public T Deserialize<T>(string Json)
    {
        using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(Json)))
        {
            DataContractJsonSerializer serialiser = new DataContractJsonSerializer(typeof(T));
            var deserializedObj = (T)serialiser.ReadObject(ms);
            return deserializedObj;
        }
    }
}

.NET4에는 DataContractJsonSerializer와 같은 JSON 클래스가 내장되어 있지만 매우 취약하여 멀티디멘터리 어레이를 지원하지 않습니다.JSON을 사용하는 것이 좋습니다.그물

언급URL : https://stackoverflow.com/questions/3275863/does-net-4-have-a-built-in-json-serializer-deserializer

반응형