在.NET 2.0中序列化为JSON

时间:2009-06-29 00:56:50

标签: c# json

如何使用C#将对象序列化为.NET 2.0中的JSON?

6 个答案:

答案 0 :(得分:11)

您可以使用ASP.NET Ajax 1.0中的JavaScriptSerializer类,它与.NET 2.0兼容。

答案 1 :(得分:10)

您是否尝试过JSON.net

答案 2 :(得分:1)

JSON.org引用了许多语言的许多序列化程序,包括C#中的六个以上。您应该能够找到符合您的API和许可需求的产品,包括JSONsharp和LGPL许可以及精心设计的Json.NET

如果您要序列化的内容相当简单,那么为特定目的编写自己的内容并不是那么难。 JSON.org网站具有语法,而且非常简单。

答案 3 :(得分:1)

您是否尝试在.NET端构建RPC服务器?如果是这样看看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();
        }
    }
}

答案 4 :(得分:1)

我能够通过一些小的改动将Mono的System.Json实现向后移植到C#2.0。

您需要here中的6个文件,或者只需从here下载我的C#2.0项目。

请注意,使用System.Json,您必须手动序列化任何非基本数据类型。 (见here

答案 5 :(得分:-1)

我在下面的代码中使用JSON消息,对我来说效果很好。

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

在WCF中调用JSON序列化程序。

[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();
}