.Net AJAX에 객체를 JSON 문자열로 수동으로 직렬화하는 방법이 내장되어 있습니까?
-
09-06-2019 - |
문제
내가 발견했다 ScriptingJsonSerializationSection
하지만 어떻게 사용하는지 잘 모르겠습니다.객체를 JSON 문자열로 수동으로 변환하는 함수를 작성할 수도 있지만 .Net에서는 <System.Web.Services.WebMethod()>
그리고 <System.Web.Script.Services.ScriptMethod()>
속성이 있으므로 내가 놓친 기본 제공 방법이 있어야 합니다.
추신:Asp.Net 2.0 및 VB.Net 사용 - 이것을 태그에 넣었는데 사람들이 놓친 것 같습니다.
해결책
이것은 트릭을 수행해야합니다
Dim jsonSerialiser As New System.Web.Script.Serialization.JavaScriptSerializer
Dim jsonString as String = jsonSerialiser.Serialize(yourObject)
다른 팁
당신이 찾고있는 것은이 수업이라고 생각합니다.
System.ServiceModel.Web.DataContractJsonSerializer
다음은 Rick Strahl의 예입니다. .NET 3.5의 DataContractJsonSerializer
JavaScriptSerializer 클래스는 기술적으로 더 이상 사용되지 않으므로 DataContractJsonSerializer 3.0 이상을 사용하는 경우 가장 선호되는 방법입니다.
글쎄요, 저는 현재 객체를 직렬화 및 역직렬화하기 위해 다음 확장 메서드를 사용하고 있습니다.
using System.Web.Script.Serialization;
public static string ToJSON(this object objectToSerialize)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
return jss.Serialize(objectToSerialize);
}
/// <typeparam name="T">The type we are deserializing the JSON to.</typeparam>
public static T FromJSON<T>(this string json)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
return jss.Deserialize<T>(json);
}
나는 이것을 꽤 많이 사용합니다. 미리 경고하십시오. 이 구현은 약간 순진합니다(예:직렬화하는 대상과 클라이언트에서 이를 사용하는 방법(특히 DateTimes의 경우)에 따라 몇 가지 잠재적인 문제가 있습니다.
System.Web.Extensions 어셈블리 버전 3.5.0.0에는 JavaScript직렬화기 당신이 원하는 것을 처리해야하는 클래스.
노력하다
System.Web.Script.Serialization.JavaScriptSerializer
또는 체크아웃하세요 JSON.org 당신이 원하는 것을 정확하게 수행하기 위해 작성된 전체 라이브러리 목록이 있습니다.