Какие библиотеки доступны для обработки JSON в .Net? Я видел это: http://james.newtonking.com/projects/json-net.aspx, но предпочел бы родную библиотеку, если это было возможно.Использование JSON в .Net
ответ
Если вы можете потребовать .Net 3.5, используйте System.Web.Script.Serialization.JavaScriptSerializer
Спасибо, Фрэнк. Я займусь этим. – sKIPper76
Я использую JavaScriptSerializer
некоторые разоблачить структуры данных от службы WCF в Ajax звонки, и это работает довольно неплохо.
JavaScriptSerializer
был отмечен как устаревший в .NET 3.5 и
, но вы можете использовать DataContractJsonSerializer
.
EDIT: см. this question on SO о том, действительно ли JavaScriptSerializer
является устаревшим в будущем в BC BCL. Похоже, что JavaScriptSerializer
больше не устарел в .NET 3.5 SP1 - так что, вероятно, это хорошо использовать. Если есть сомнения, вы можете использовать сериализатор контрактов из WCF или JSON.NET (если вы хотите включить сторонний код).
Вот код оболочки, который можно использовать с помощью DataContractJsonSerializer
.
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;
public class JSONHelper
{
public static string Serialize<T>(T obj)
{
DataContractJsonSerializer serializer =
new DataContractJsonSerializer(obj.GetType());
using(MemoryStream ms = new MemoryStream())
{
serializer.WriteObject(ms, obj);
string retVal = Encoding.Default.GetString(ms.ToArray());
return retVal;
}
}
public static T Deserialize<T>(string json)
{
using(MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(json)))
{
DataContractJsonSerializer serializer =
new DataContractJsonSerializer(typeof(T));
T obj = (T)serializer.ReadObject(ms);
ms.Close();
return obj;
}
}
}
Код выше любезно: http://pietschsoft.com/post/2008/02/NET-35-JSON-Serialization-using-the-DataContractJsonSerializer.aspx,
я изменил его от его первоначальной формы использовать лучшие методы для удаления объекта (using
модели .NET поддерживает).
-1 для того, чтобы не обтекать потоки в блоках 'using', а для создания экземпляра, который вы позже перезаписываете в десериализации. –
Хороший улов, Джон. Согласны ли вы об использовании этого класса? –
@ Джон Сандерс: Справедливый пинг. Я исправил это, хотя я скажу, что я не являюсь автором этого кода. Хотя я и изменил его в своей адаптированной реализации. Было проще найти сайт, чем мой код :) – LBushkin
- 1. что использование JSON в .net
- 2. Использование веб-служб JSON-RPC в .NET
- 3. Использование веб-службы JSON от .Net 2.0 и .Net 4.5
- 4. C# .net - читать JSON
- 5. Json в .net перевода
- 6. Сериализация JSON в .NET
- 7. Использование json объекта в C#
- 8. использование 'using' в .NET
- 9. Использование словаря в .NET
- 10. Использование KeyedByTypeCollection в .Net?
- 11. Использование MPXJ в .NET
- 12. Использование ScrollBars в .Net
- 13. Запрос JSON с JSON .NET
- 14. Преобразование JSON в JSON с .NET
- 15. Использование библиотеки .Net 2 в .NET 4
- 16. Использование .NET 3.5 в .NET 2.0
- 17. Использование внешнего .dll в ядре net net
- 18. Повторное использование значка .NET .NET
- 19. JSON .NET Custom Symbol Resolver
- 20. Parse JSON в .NET runtime
- 21. Декодирование json в .Net Object
- 22. Json объект в C# .net
- 23. Формат данных JSON в .NET
- 24. Разбор JSON в C# .net
- 25. JSON XPATH навигация в .NET
- 26. Преобразование .NET DateTime в JSON
- 27. Укрепить Json Injection в .NET
- 28. Сериализовать JSON в .NET 2.0
- 29. Преобразование объекта .Net в JSON
- 30. Связанный объект JSON внутри массива в .NET
Что вы подразумеваете под «родной» библиотекой? Имена методов, написанные на каком-то местном языке вместо английского? –
@Mehrdad: Он означает, что он написан полностью на платформе .NET, который не полагается на вызовы API. –
Если это то, что означает «родной», что случилось с JSON.NET? –