2012-04-03 2 views
1

jsonシリアライザとデシリアライザをダウンロードして、プロファイルオブジェクトfindを読み取りますが、リストのClient項目には入れません。ここでは、JSONJsonが要素のサブ配列をオブジェクトにマッピングしていません

{"Profile": [{ 
       "Name":"Joe", 
       "Last :"Doe", 
       "Client": 
         { 
          "ClientId":"1", 
          "Product":"Apple", 
          "Message":"Peter likes apples" 
          }, 
        "Date":"2012-02-14" 
       }]} 

は、だから私のプロフィールクラスで私は

public class Profile 
    { 
    public string Name {get; set;} 
    public string Last {get; set;} 
    public List<Client> Client {get; set;} 
    public DateTime dDate {get; set;} 

     public Profile() 
     { 
     } 
     public Profile BuildEntity() 
     { 
      Profile profile = new Profile(); 
      profile.Name = this.Name; 
      profile.Last = this.LastName; 
      profile.Client = this.client; 
      profile.dDate = this.dDate; 
      return dDate; 

     } 
    } 

は今、私はすべての項目をデバッグするとき、リスト以外の値を持ってきています。誰がそれが何であるか知っていますか?

注:これは、あなたがそれを模擬国連が一覧であるので、多分クライアントは、配列ではなくオブジェクトである必要があり、当社のProfile.asmx Webサービスに

よろしく

+0

コードの1つの関連する部分を残して良い仕事。また、どのような疑問があるのですか?「誰かがそれを知っていますか?」「それはキリンです。 –

+0

ブー、ご迷惑をおかけして申し訳ありませんが、私はJSONとWebサービスを使って作業しています。私はより多くの情報を提供することに満足しています。関連するコードは何ですか?無礼にする必要はありません:) – user710502

+0

'dDate'と' Date'とは何ですか?また、どのようなJSONライブラリを使用していますか? –

答えて

1

あなたのようにクライアントを宣言:

public List<Client> Client {get; set;} 

しかし、あなたのデータは次のようになります。

"Client": 
[{ 
    "ClientId":"1", 
    "Product":"Apple", 
    "Message":"Peter likes apples" 
}] 

"Client": 
{ 
    "ClientId":"1", 
    "Product":"Apple", 
    "Message":"Peter likes apples" 
} 

私が予想されるデータをもっとだと思います

逆シリアル化はおそらくeです単なるオブジェクトではなく、オブジェクトの配列を調べること。

+0

あなたの説明と助けをありがとう、ありがとう – user710502

1

を掲載されています。これで試してみてください。

   "Client": 
        [{ 
         "ClientId":"1", 
         "Product":"Apple", 
         "Message":"Peter likes apples" 
         }], 
+0

非常にありがとう、ありがとうございます – user710502

1

今後、LinqPadを使用してテストして実装することをお勧めします。以下は作業コードサンプルです。

 

    string JASON = @" 
     {""Profile"": [{ 
         ""Name"":""Joe"", 
         ""Last"":""Doe"", 
         ""Client"": 
           { 
           ""ClientId"":""1"", 
           ""Product"":""Apple"", 
           ""Message"":""Peter likes apples"" 
           }, 
         ""Date"":""2012-02-14"" 
         }]} 
    "; 
    void Main() 
    { 
     var jason = JsonConvert.SerializeObject(Container.Instance()); 
     JASON.Dump(); 
     jason.Dump(); 
     JsonConvert.DeserializeObject(JASON).Dump(); 
    } 

    // Define other methods and classes here 
    class Container 
    { 
     public Container() 
     { 
      Profile = new List { }; 
     } 
     public List Profile { get; set; } 

     public static Container Instance() 
     { 
      var c = new Container(); 
      c.Profile.Add(
       new Profile { 
        Name = "Joe", 
        Last = "Doe", 
        Date = "2012-02-14", 
        Client = new Client{ ClientId = 1, Product = "Apple", Message = "Peter likes apples" } 
      }); 
      return c; 
     } 
    } 

    class Client 
    { 
     public int ClientId { get; set; } 
     public string Product { get; set; } 
     public string Message { get; set; } 
    } 

    class Profile 
    { 
     public string Name {get; set;} 
     public string Last {get; set;} 
     public Client Client {get; set;} 
     public string Date {get; set;} 
     public Profile() 
     { } 
    } 

+0

PS:私はまた、JSON.NETを使用することをお勧めします – Max

関連する問題