2

RESTWebサービスを呼び出しています。

応答は次のようになります。

<?xml version=\"1.0\" encoding=\"utf-8\"?>
<data>
  <status>1</status>
  <message>OK</message>
  <results>
    <result>
      <account>12345</account>
      <to>012345678</to>
      <from>054321</from>
      <message>Testing</message>
      <flash></flash>
      <replace></replace>
      <report></report>
      <concat></concat>
      <id>f8d3eea1cbf6771a4bb02af3fb15253e</id>
    </result>
  </results>
</data>

「SMSSendingResponse」というクラスがあります。これは次のようになります。

public class SMSSendingResponse
{
    public string AccountNumber { get; set; }
    public string Status { get; set; }
    public string Message { get; set; }
    public string ResponseID { get; set; }
    public SMSMessage SMSMessage { get; set; }
}

SMSMessageは次のようになります。

public class SMSMessage
{
    public string To { get; set; }
    public string From { get; set; }
    public string Message { get; set; }
}

ご覧のとおり、返送された要素の一部(フラッシュ、交換など)を無視しています。

返されたXMLをこのオブジェクトにシリアル化する最良の方法は何ですか?

XmlSerializerを使用してみましたが、エラーが発生しました...XmlSerializerを使用して最初にシリアル化していないためだと思います。

Jsonの場合は、NewtonSoft.Jsonライブラリを使用します... xmlをjsonに変換し、その方法でシリアル化できると思いますが、より良い方法はありますか?

4

2 に答える 2

2

XmlSerializerクラスのフィールドに適切な属性を追加する限り、問題なく 使用できます。いくつかの例については、これらをチェックしてください。間違いなく、最初の数回はエラーに遭遇しますが、一度理解すれば、それは素晴らしいツールであるため、それを使い続けてください。

編集:

これは、使用可能なすべての属性を見つけるためのより良い場所です。リストを調べて、Xmlで始まり​​、属性で終わるものを探します。あなたはそれらすべてを知りたいでしょう。

于 2010-05-14T11:43:41.723 に答える
0

xsd.exeを使用して、xmlファイルからスキーマを抽出し、対応するc#クラスを生成できます。生成されたクラスを使用して、xmlをシリアル化および逆シリアル化できます。コードを表示すると、間違いをより簡単に特定できるようになります。

于 2010-05-14T11:47:09.800 に答える