Есть ли встроенный способ в .Net AJAX вручную сериализовать объект в строку JSON?
-
09-06-2019 - |
Вопрос
Я нашел 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 существует целый список библиотек, написанных для того, чтобы делать именно то, что вы хотите.