2012-04-11 65 views
-1

我想在ListBox中顯示數據而不使用任何DLL。並且我的web服務以json格式響應。如何在WP7中解析Json webService響應

我的Web服務響應是below.it有超過800條記錄

[ 
    { 
    "st_id":"1", 
     "st_name":"name xyz" 
    }, 
{ 

    "st_id":"2", 
    "st_name":"name ABC" 
}, 
{ 

    "st_id":"3", 
    "st_name":"name HIJK" 
}, 
{ 
    "st_id":"4", 
    "st_name":"name OPQ" 
}, 
] 

我的數據類是如下

[DataContract] 
public class Student 
{ 
    [DataMember=("st_id")] 
    public bool st_id { get; set; } 
    [DataMember=("st_name")] 
    public string st_name { get; set; } 

} 

我嘗試使用DataContractJsonSerializer & m到處WS序列化對象響應在Stream.But我不能夠serialize.Suggest爲JSON的Serilize和Deserilize鏈接或基礎教程

DataContractJsonSerializer stdserialize = 
    new DataContractJsonSerializer(typeof(Student)); 
Student stuser = (Student)stdserialize.ReadObject(responseStream); 

所以請幫助JSON響應解析&建議鏈接datacontract和所有這一切使知識從基礎。
謝謝,

+0

你爲什麼要規定「不使用任何DLL」?我會使用Json.NET,它可以在WP7中正常工作... – 2012-04-11 06:17:06

+0

但是它不嘗試添加Json.Net的參考。 &我也嘗試了使用System.Json的命名空間; – user1140237 2012-04-11 06:24:24

+0

那麼Json.NET不會使用該命名空間...並且你必須先從json.codeplex.com下載它... – 2012-04-11 06:26:13

回答

0

你宣佈st_id作爲bool,但你要反序列化的數據類型爲字符串(可轉換爲數字 - 而不是布爾值)。嘗試聲明它爲string,它應該工作。

此外,響應是對象數組,所以你應該使用類型爲Student[]

DataContractJsonSerializer stdserialize = 
    new DataContractJsonSerializer(typeof(Student[])); 
Student stuser = (Student[])stdserialize.ReadObject(responseStream);