2008-08-29 3 views
10

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

PS: используя Asp.Net 2.0 и VB.Net - я помещал это в теги, но я думаю, что люди его пропустили.

+0

«Использование Asp.Net 2.0 и VB.Net - я помещал это в теги, но я думаю, что люди его пропустили» - хорошо, что «2.0» можно интерпретировать как «не 1.1» вместо «not 3.x», , – bzlm 2009-03-02 12:58:50

ответ

10

Это должно сделать трюк

Dim jsonSerialiser As New System.Web.Script.Serialization.JavaScriptSerializer 
Dim jsonString as String = jsonSerialiser.Serialize(yourObject) 
+0

Примечание: в .NET 3.5 JavaScriptSerializer отмечен как устаревший, он говорит, что использует DataContractJsonSerializer – 2008-09-10 03:06:53

+0

Правильно, но это для проекта .Net 2.0 – travis 2008-09-16 02:29:38

+3

В .NET 3.5 SP1 он снова не работает! – bzlm 2009-03-02 12:57:14

3

В сборка System.Web.Extensions, версия 3.5.0.0, есть класс JavaScriptSerializer, который должен обрабатывать то, что вы хотите ,

1

Попробуйте

System.Web.Script.Serialization.JavaScriptSerializer 

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

4

Поскольку класс JavaScriptSerializer технически устарел, я считаю, что DataContractJsonSerializer - предпочтительный способ пойти, если вы используете 3.0+.

3

Ну, я в настоящее время используют следующие методы расширения для сериализации и десериализации объектов:

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).

 Смежные вопросы

  • Нет связанных вопросов^_^