У вас есть доступ к ПК с Windows & nbsp; 7 или к ПК с уже установленным SDK?
Если это так, самое простое решение - скопировать папку C:\Program Files\Microsoft SDKs\Windows\v7.1
с компьютера с ОС Windows & nbsp; 7. на компьютер с Windows 8.
Вы можете использовать класс JavaScriptSerializer , проверьте эту статью , чтобы создать полезный метод расширения.
Код из статьи:
namespace ExtensionMethods
{
public static class JSONHelper
{
public static string ToJSON(this object obj)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
return serializer.Serialize(obj);
}
public static string ToJSON(this object obj, int recursionDepth)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
serializer.RecursionLimit = recursionDepth;
return serializer.Serialize(obj);
}
}
}
Использование :
using ExtensionMethods;
...
List<Person> people = new List<Person>{
new Person{ID = 1, FirstName = "Scott", LastName = "Gurthie"},
new Person{ID = 2, FirstName = "Bill", LastName = "Gates"}
};
string jsonString = people.ToJSON();
Этот фрагмент кода использует DataContractJsonSerializer из System.Runtime.Serialization.Json в .NET 3.5.
public static string ToJson<T>(/* this */ T value, Encoding encoding)
{
var serializer = new DataContractJsonSerializer(typeof(T));
using (var stream = new MemoryStream())
{
using (var writer = JsonReaderWriterFactory.CreateJsonWriter(stream, encoding))
{
serializer.WriteObject(writer, value);
}
return encoding.GetString(stream.ToArray());
}
}
Взгляните на http://www.codeplex.com/json/ для проекта json-net.aspx. Зачем заново изобретать колесо?
Если вы не можете или не хотите использовать два встроенных сериализатора JSON ( JavaScriptSerializer и DataContractJsonSerializer ) вы можете попробовать библиотеку JsonExSerializer - я использую ее в ряде проектов и работает довольно хорошо.
Если вы пытаетесь создать веб-службу для передачи данных через JSON на веб-страницу, рассмотрите возможность использования набора инструментов ASP.NET Ajax:
http: //www.asp. net / learn / ajax / tutorial-05-cs.aspx
Он автоматически преобразует ваши объекты, обслуживаемые через веб-сервис, в json и создаст прокси-класс, который вы можете использовать для подключения к нему.
DataContractJSONSerializer сделает все за вас так же просто, как XMLSerializer. Это тривиально использовать в веб-приложении. Если вы используете WCF, вы можете указать его использование с помощью атрибута. Семейство DataContractSerializer также работает очень быстро.
Вы также можете попробовать мой ServiceStack JsonSerializer , это самый быстрый сериализатор .NET JSON на данный момент. Он поддерживает сериализацию DataContracts, любого типа POCO, интерфейсов, объектов с поздним связыванием, включая анонимные типы и т. Д.
Базовый пример
var customer = new Customer { Name="Joe Bloggs", Age=31 };
var json = JsonSerializer.SerializeToString(customer);
var fromJson = JsonSerializer.DeserializeFromString<Customer>(json);
Примечание: используйте Microsofts JavaScriptSerializer только в том случае, если производительность не важна для вас, поскольку мне пришлось оставить его из моих тестов, так как он до 40x-100x медленнее, чем другие сериализаторы JSON.