Сериализовать JSON в .NET 2.0

как вы можете сериализовать объект в JSON в .NET 2.0 с помощью С#?

Ответ 1

Вы можете использовать класс JavaScriptSerializer из ASP.NET Ajax 1.0, который совместим с .NET 2.0.

Ответ 2

Вы пробовали JSON.net?

Ответ 3

JSON.org содержит ссылки на ряд сериализаторов на нескольких языках, включая более половины десятка в С#. Вы должны найти тот, который соответствует вашим требованиям API и лицензированию, включая JSONsharp с лицензией LGPL и хорошо разработанным Json.NET.

Если то, что вы сериализуете, довольно просто, не все так сложно писать самостоятельно для определенной цели. Сайт JSON.org имеет синтаксис, и он очень прост.

Ответ 4

Вы пытаетесь создать RPC-сервер на стороне .NET? Если так, посмотрите на Jayrock (jayrock.berlios.de). Вы получаете исходный код, и он будет скомпилирован под 2.0.

Также установка RPC-сервера является оснасткой:

using Jayrock;
using Jayrock.JsonRpc;
using Jayrock.JsonRpc.Web;
using Jayrock.Json;
using Jayrock.Json.Conversion;


namespace myRPCService
{
    [JsonRpcService("Service")]
    public class Service : JsonRpcHandler
    {

        [JsonRpcMethod("call", Idempotent = true)]
        public string call(string value)
        {
            JsonObject oJSON = JsonConvert.Import(typeof(JsonObject), value) as JsonObject;
           ...
           return oJSON.ToString();
        }
    }
}

Ответ 5

Мне удалось выполнить резервное копирование Mono с использованием System.Json на С# 2.0 с несколькими незначительными изменениями.

Вам понадобятся 5 файлов из здесь и JavaScriptReader.cs из .

Обратите внимание, что с помощью System.Json вам придется вручную сериализовать любой не-примитивный тип данных. (см. здесь)

Ответ 6

Я использую ниже код для сообщения JSON и хорошо работаю для меня.

public static class JSONHelper
{
    public static string ToJSON(this object obj)
    {
        JavaScriptSerializer serializer = new JavaScriptSerializer();
        return serializer.Serialize(obj);
    }
}

Вызов JSON-сериализатора в WCF.

[OperationContract]
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json)]
public string LoadDetails()
{
    LogDetails objSubLog = new LogDetails ();
    List<LogDetails> lstLogdetails;
    DAL objDAL = new DAL();
    lstLogdetails = objDAL.GetLog("ALL", objSubLog);
    return lstLogdetails.ToJSON();
}