0

データ コントラクト クラスを作成することで、デシリアライゼーションを作成することができました (1 トンの顧客を悩ませた後)。私の問題は、宣言した両方のフィールドが空のものを返していることです。それで、私はそれを見て、JSON オブジェクトがネストされていることに気付きました。内部にあるパーツにアクセスする方法が不明です。

データ コントラクトはこのようなものですが、Boppを null (または空の文字列、どちらか不明)として取得し、 Moppを一連のゼロとして取得しています。

[DataContract]
public class Customer
{
  [DataMember(Name = "Beep")]
  public String Bopp;

  [DataMember(Name = "Meep")]
  public Guid Mopp;
}

データはこのフォームにあると思いました。

[
  {"Beep":"beep1", "Meep":"meep1"},
  {"Beep":"beep2", "Meep":"meep2"},
  {"Beep":"beep3", "Meep":"meep3"}
]

しかし、どうやら、彼らはオブジェクトを他のオブジェクトのに移動したので、よりこのようになっています.

[ "root":[
  {
    "A":"some",
    "B":[
      {"Beep":"beep1", "Meep":"meep1"},
      {"Beep":"beep2", "Meep":"meep2"},
      {"Beep":"beep3", "Meep":"meep3"}],
    "C":"some"
  },
  {
    "A":"some",
    "B":[
      {"Beep":"beep1", "Meep":"meep1"},
      {"Beep":"beep2", "Meep":"meep2"},
      {"Beep":"beep3", "Meep":"meep3"}],
    "C":"some"
  }
]]

データ コントラクトを再設計して、適切なフィールドにアクセスできるようにするにはどうすればよいですか? それとも、データ メンバーの名前がフィールドと異なっていてはならない (つまり、BeepBoppが機能しない) 何かが足りないのでしょうか?!

編集:

リクエストに応じて、文字列から (ほぼ) ライブ データを投稿しています。

{"CustomerStatuses":[{
  "Information":[{"Guid":"1","Role":"Customer"}],
  "CustomerId":"12345678-1234-1324-1234-123456781234",
  "Status":4},
  "Information":[{"Guid":"5","Role":"Customer"}],
  "CustomerId":"12345678-1234-1324-1234-123456781234",
  "Status":6},
  "Information":[{"Guid":"7","Role":"Seller"}],
  "CustomerId":"12345678-1234-1324-1234-123456781234",
  "Status":6},
  ...

そして、これが実際のデータ コントラクトです。

[DataContract]
public class Customer
{
  [DataMember(Name = "Status")]
  public String Status;

  [DataMember(Name = "CustomerId")]
  public Guid Guid;
}
4

1 に答える 1

0

クラス構造は Json と一致する必要があります。

<DataContract> 
Public Class Customer 

<DataMember(Name:="Status")> 
Public Property Status As Int32 

<DataMember> 
Public Property Information As Object 

<DataMember> 
Public Property CustomerId As String 

End Class 




Public Class Customers 

Public Property CustomerStatuses As List(Of Customer) 

End Class
于 2013-02-08T17:35:39.020 に答える