-1

DLL を使用せずにリストボックスにデータを表示したいのですが、Web サービスは json 形式で応答します。

私の Web サービスの応答は次のとおりです。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 は Stream で WS 応答を取得しています。

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

そのため、json応答の解析とdatacontractのリンクの提案、および基本からの知識を提供するすべてを支援してください。
ありがとう、

4

1 に答える 1

0

st_id を として宣言しましたboolが、逆シリアル化しようとしているデータの型は文字列です (ブール値ではなく数値に変換できます)。として宣言してみてくださいstring。動作するはずです。

また、応答はオブジェクトの配列Student[]であるため、使用するタイプは次のとおりです。

DataContractJsonSerializer stdserialize = 
    new DataContractJsonSerializer(typeof(Student[]));
Student stuser = (Student[])stdserialize.ReadObject(responseStream);
于 2012-04-13T23:43:32.047 に答える