Сериализация в JSON в .NET 2.0 - PullRequest
14 голосов
/ 29 июня 2009

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

Ответы [ 6 ]

11 голосов
/ 29 июня 2009

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

10 голосов
/ 29 июня 2009

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

1 голос
/ 20 ноября 2014

Мне удалось перенести реализацию Mono System.Json на C # 2.0 с небольшими изменениями.

Вам понадобится 6 файлов из здесь или вы можете просто загрузить мой проект C # 2.0 из здесь .

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

1 голос
/ 29 июня 2009

Вы пытаетесь построить сервер 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();
        }
    }
}
1 голос
/ 29 июня 2009

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

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

0 голосов
/ 02 октября 2013

Я использую приведенный ниже код для сообщения 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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...