Dan*_*ell 5 .net c# json json.net windows-phone-7
我有这个JSON,我试图在Windows Phone上阅读.我一直在DataContractJsonSerializer和Json.NET 玩,但运气不好,特别是阅读每个'条目':
{"lastUpdated":"16:12","filterOut":[],"people":
[{"ID":"x","Name":"x","Age":"x"},{"ID":"x","Name":"x","Age":"x"},{"ID":"x","Name":"x","Age":"x"}],
"serviceDisruptions":
{
"infoMessages":
["blah blah text"],
"importantMessages":
[],
"criticalMessages":
[]
}
}
Run Code Online (Sandbox Code Playgroud)
我关心的只是人物部分的条目.基本上我需要读取并遍历条目(包含ID,Name,Age值)并将它们添加到Collection或类中.(之后我填充了一个列表框.)
任何指针赞赏.
我能够使用以下代码反序列化您的JSON字符串.这是在.NET 4控制台应用程序中测试的,并且希望也能在WP 7中运行.
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(PersonCollection));
string json = "{\"lastUpdated\":\"16:12\",\"filterOut\":[],\"people\": [{\"ID\":\"a\",\"Name\":\"b\",\"Age\":\"c\"},{\"ID\":\"d\",\"Name\":\"e\",\"Age\":\"f\"},{\"ID\":\"x\",\"Name\":\"y\",\"Age\":\"z\"}], \"serviceDisruptions\": { \"infoMessages\": [\"blah blah text\"], \"importantMessages\": [], \"criticalMessages\": [] } }";
using (var stream = new MemoryStream(Encoding.Unicode.GetBytes(json)))
{
var people = (PersonCollection)serializer.ReadObject(stream);
foreach(var person in people.People)
{
Console.WriteLine("ID: {0}, Name: {1}, Age: {2}", person.ID, person.Name, person.Age);
}
}
Run Code Online (Sandbox Code Playgroud)
使用以下数据类:
[DataContract]
public class PersonCollection
{
[DataMember(Name = "people")]
public IEnumerable<Person> People { get; set; }
}
[DataContract]
public class Person
{
[DataMember]
public string ID { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public string Age { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1156 次 |
| 最近记录: |