【发布时间】:2009-06-29 00:56:50
【问题描述】:
如何在 .NET 2.0 中使用 C# 将对象序列化为 JSON?
【问题讨论】:
-
这个问题有答案吗?是否需要赏金才能获得?
如何在 .NET 2.0 中使用 C# 将对象序列化为 JSON?
【问题讨论】:
您可以使用与 .NET 2.0 兼容的 ASP.NET Ajax 1.0 中的 JavaScriptSerializer 类。
【讨论】:
你试过JSON.net吗?
【讨论】:
您是否尝试在 .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();
}
}
}
【讨论】:
我将以下代码用于 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();
}
【讨论】:
JavaScriptSerializer 不适用于 .NET 2.0 msdn.microsoft.com/en-us/library/…