2012-04-11 3 views
-1

Я хочу отображать данные в списке без использования каких-либо DLL. И мой веб-сервис, отвечающий в json формате.Как проанализировать ответ Json webService в WP7

Мой ответ веб-службы как 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 & получаю WS ответ в Stream.But я не могу сериализовать. Связывание ссылок или основной учебник по серилизации и десерилизации json

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

поэтому, пожалуйста, помогите разобраться в анализе ответа json & предложите ссылку на datacontract и все, что дает знания из основ.
Спасибо,

+0

Почему вы определили «без использования каких-либо DLL»? Я бы использовал Json.NET, который отлично работает в WP7 ... –

+0

, но он не diplaying, а m пытается добавить ссылку для Json.Net. & i также попытался использовать пространство имен с помощью System.Json; – user1140237

+0

Well Json.NET не использует это пространство имен ... и вы должны сначала загрузить его с json.codeplex.com ... –

ответ

0

Вы объявили st_id как bool, но тип данных, который вы пытаетесь десериализациями является строкой (которая может быть превращена в цифры - не булевы). Попробуйте объявить его как string, и он должен работать.

Кроме того, реакция является массив объектов, поэтому тип вы должны использовать это Student[]:

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