2

ここで助けが必要です

json オブジェクトを送信して API 呼び出しを行おうとしています。

しかし、C# の日時を適切な json 形式に変換するのに苦労しています。

これが私のサンプルコードです。

HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("example.com");

httpWebRequest.ContentType = "text/json";

httpWebRequest.Method = "POST";

using (StreamWriter streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{

    string json = "{\"ReferenceNumber\":\"Testing OAKLAND\",\"CustomerNotes\":\"Testing\",\"DeliveryDate\":" + "Date(" + System.DateTime.Now.Ticks + ")" +
                         ",\"OrderLineItems\":[{\"ItemEntityId\":14771,\"Quantity\":2}]}";

    streamWriter.Write(json);
    streamWriter.Close();
}

HttpWebResponse httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();

using (StreamReader streamReader = new StreamReader(httpResponse.GetResponseStream()))
{

    string responseText = streamReader.ReadToEnd();

    Response.Write(responseText);
    Response.End();
    }

jsonでdatetimeをフォーマットする方法を教えてください.jsonこのjsonオブジェクトは問題ないと思いますか?? .NET 2.0 フレームワークを使用しています

4

1 に答える 1

1

代わりにシリアル化を使用してください。必要なエスケープと変換を処理します。

.NET 2.0 では匿名型を使用する余裕がないため、シリアル化するデータのモデル クラスを作成する必要があります。

public class OrderModel {
  private string _referenceNumber;
  public string ReferenceNumber {
    get { return _referenceNumber; }
    set { _referenceNumber = value; }
  }
  ...
  class OrderItem {
    private int _itemEntityId;
    public int ItemEntityId {
      get { return _itemEntityId; }
      set { _itemEntityId; }
    }
    ....
  }
}

JSON.netSerializeObjectのメソッドを使用できます

string json = JsonConvert.SerializeObject(new OrderModel {
  ReferenceNumber = "Testing OAKLAND",
  CustomerNotes = "Testing",
  DeliveryDate = DateTime.Now,
  OrderLineItems = new List<OrderItem>() {
    new OrderItem { ItemEntityId = 14771, Quantity = 2 }
  }
});

これはより多くのコードのように思えますが、将来、あなたのコードを見ている他の開発者にとって多くの手間が省けると信じています.

于 2013-07-30T06:51:54.527 に答える