.Net AJAX에 객체를 JSON 문자열로 수동으로 직렬화하는 방법이 내장되어 있습니까?

StackOverflow https://stackoverflow.com/questions/35106

문제

내가 발견했다 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 당신이 원하는 것을 정확하게 수행하기 위해 작성된 전체 라이브러리 목록이 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top