在C#.NET 3.5中使用JSON

我找到了一些帮助方法,允许我将对象转换为JSONM和JSON转换为对象。 现在我正在读一个看起来像这样的json文件:

/************************************************************************/ /* Coments Here *********************************************************/ /************************************************************************/ //more comments [{ "Id": 1, "Name": "HP Up" }, { "Id": 2, "Name": "Regeneration" }] 

现在,虽然我可以将JSON转换为表示1对象,但我还是要使用C#.NET 3.5将其转换为多个对象?

您需要使用System.Runtime.Serialization.Json命名空间中的DataContractJsonSerializer。 使用[DataContract]属性标记您的类,使用[CollectionDataContract]属性标记集合类,使用[DataMember]属性标记属性。

 [CollectionDataContract] public class People : List { } [DataContract] public class Person { public Person() { } [DataMember] public int Id{ get; set; } [DataMember] public string Name { get; set; } } 

这是一个序列化(To)和反序列化(From)的辅助类

 using System.Runtime.Serialization; using System.Runtime.Serialization.Json; public class jsonHelper { public static string To(T obj) { string retVal = null; System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(obj.GetType()); using (MemoryStream ms = new MemoryStream()) { serializer.WriteObject(ms, obj); retVal = Encoding.Default.GetString(ms.ToArray()); } return retVal; } public static T From(string json) { T obj = Activator.CreateInstance(); using (MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(json))) { System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(obj.GetType()); obj = (T)serializer.ReadObject(ms); } return obj; } } 

所以把你的json放在上面并将它发送到上面jsonHelper类的From方法

 People peeps = jsonHelper.From(input); 

下载Json.NET 。 这比我在.NET上看到的任何其他东西都更好地处理JSON。 我认为Json序列化器会做你所要求的。

另外,请查看右侧的相关问题。 我相信你会在那里找到答案。