Есть ли встроенный способ в .Net AJAX вручную сериализовать объект в строку JSON?

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

Вопрос

Я нашел ScriptingJsonSerializationSection но я не уверен, как это использовать.Я мог бы написать функцию для преобразования объекта в строку JSON вручную, но поскольку .Net может сделать это на лету с помощью <System.Web.Services.WebMethod()> и <System.Web.Script.Services.ScriptMethod()> атрибуты, поэтому должен быть встроенный способ, которого мне не хватает.

PS:используя 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

Вот пример от Рика Страла: DataContractJsonSerializer в .NET 3.5

Поскольку класс 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 есть класс JavaScriptSerializer , который должен обрабатывать то, что вы хотите.

Попробуй

System.Web.Script.Serialization.JavaScriptSerializer

или Проверить JSON.org существует целый список библиотек, написанных для того, чтобы делать именно то, что вы хотите.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top