希望使用C#2.0创建JSON Serializer / Deserializer类

时间:2011-02-08 10:28:00

标签: c# json

我正在使用c#。

现在我正在寻找创建一个“JSONHelper”类,它将序列化和反序列化JSON字符串数据。在我目前的场景中,我从我的web服务获取格式字符串,返回JSON类型。

我的C#代码中有一个方法,它调用一个Web服务方法,该方法返回字符串JSON类型数据。见下面的例子。

string userDetails = myWebService.GetMember(username, Password, out Result);

所以userDetails值是

{"FullName":"Manoj Singh","username":"Manoj","Miles":2220,"TierStatus":"Gold","TierMiles":23230,"MilesExpiry":12223,"ExpiryDate":"31 January 2011","PersonID":232323,"AccessToken":"sfs23232s232","ActiveCardNo":"232323223"}

现在我想编写JSONHelper类,其中将有序列化和反序列化JSON字符串类型的方法,并将返回字典类型的值。

2 个答案:

答案 0 :(得分:0)

你看过http://json.codeplex.com/吗?

我已经习惯了,发现json.net非常好。不知道你为什么要自己写。

答案 1 :(得分:-1)

您可以在System.Web.Script.Serialization命名空间中使用JavaScriptSerializer类:

JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
object result = jsonSerializer.DeserializeObject(jsonString);

假设你的jsonString代表一个对象,它应该返回一个字典。但是你需要仔细检查类型,因为如果给它一个json列表,不能保证它不会返回IEnumerable。

更好的是你可以使用强类型反序列化:

http://pietschsoft.com/post/2008/02/NET-35-JSON-Serialization-using-the-DataContractJsonSerializer.aspx

如果你知道你的网络方法的返回签名,这是一个更好的解决方案。