オブジェクトへのAPIレスポンスを逆シリアル化しようとしていますが、オブジェクトはNULLを返し続けます。私はそれを理解することはできません。私は何かマイナーなことを逃しているように感じる。XML - オブジェクトに逆シリアル化する
ここで、C#はコードをデシリアライズします。
var request = (HttpWebRequest)HttpWebRequest.Create(uri + data);
var response = (HttpWebResponse)request.GetResponse();
var reader = new StreamReader(response.GetResponseStream());
PICKUPREQUESTRESPONSE PICKUPREQUESTRESPONSE = null;
XmlSerializer serializer = new XmlSerializer(typeof(PICKUPREQUESTRESPONSE));
PICKUPREQUESTRESPONSE = (PICKUPREQUESTRESPONSE)serializer.Deserialize(reader);
reader.Close();
これはAPIのXML応答です。
<PICKUPREQUESTRESPONSE xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">
<STATUS>
<CODE>1</CODE>
<VIEW>ERROR</VIEW>
<ERRORTYPE>INPUT_ERROR</ERRORTYPE>
<MESSAGE>Testing Mode: You have passed input validation, the pickup request has NOT been submitted</MESSAGE>
<VERSION>
<CURRENT>V3X1</CURRENT>
<CURRENT_RELEASE_DATE>03/01/2014</CURRENT_RELEASE_DATE>
<LATEST>V3X1</LATEST>
<LATEST_RELEASE_DATE>03/01/2014</LATEST_RELEASE_DATE>
</VERSION>
</STATUS>
</PICKUPREQUESTRESPONSE>
ここには私が作成したC#オブジェクトがあります。
[Serializable()]
[System.Xml.Serialization.XmlRoot("PICKUPREQUESTRESPONSE")]
public class PICKUPREQUESTRESPONSE
{
[XmlArray("PICKUPREQUESTRESPONSE")]
[XmlArrayItem("STATUS", typeof(STATUS))]
public STATUS[] STATUS { get; set; }
}
[Serializable()]
public class STATUS
{
[XmlElement("CODE")]
public string CODE { get; set; }
[XmlElement("VIEW")]
public string VIEW { get; set; }
[XmlElement("ERRORTYPE")]
public string ERRORTYPE { get; set; }
[XmlElement("MESSAGE")]
public string MESSAGE { get; set; }
[XmlArrayItem("VERSION", typeof(VERSION))]
public VERSION[] VERSION { get; set; }
}
[Serializable()]
public class VERSION
{
[System.Xml.Serialization.XmlElement("CURRENT")]
public string CURRENT { get; set; }
[System.Xml.Serialization.XmlElement("CURRENT_RELEASE_DATE")]
public string CURRENT_RELEASE_DATE { get; set; }
[System.Xml.Serialization.XmlElement("LATEST")]
public string LATEST { get; set; }
[System.Xml.Serialization.XmlElement("LATEST_RELEASE_DATE")]
public string LATEST_RELEASE_DATE { get; set; }
}
のようにそれを呼び出すザ・は 'エスケープ\ "'私には奇妙に見えますが、あなたはそれらが必要なのか疑問です、 '=" ... "'を使用してください。 – HimBromBeere
あなた、それらのvariabl名前は恐ろしいです。 –
ちょっと、これは変数名の判定フリーゾーンです。それぞれ独自に。 –