APIをHTTP POST要求を生成するためにXMLをJSONに変換しようとしています。フィールドの1つが文字列ではなく整数であるため、エラーが発生します。私が読んだことから、 "json:Integer =" true ""をノードに追加するとintになるが、これは私のために働いているようだ。ここにxmlとその結果のjsonがあります。配列は機能していますが、整数はそうではありません。XMLをJSONに変換するときにC#を整数にする
<shipments json:Array="true" xmlns:json="http://james.newtonking.com/projects/json">
<shipment_tracking_number />
<response_shipment_date>2016-10-18T01:00:00.0000000-04:00</response_shipment_date>
<response_shipment_method>UPS Ground</response_shipment_method>
<expected_delivery_date>2016-10-18T01:00:00.0000000-04:00</expected_delivery_date>
<ship_from_zip_code>12345</ship_from_zip_code>
<carrier_pick_up_date>2016-10-18T01:00:00.0000000-04:00</carrier_pick_up_date>
<carrier>UPS</carrier>
<shipment_items json:Array="true">
<shipment_item_id>FF12345K</shipment_item_id>
<alt_shipment_item_id>1234567890</alt_shipment_item_id>
<merchant_sku>B00xxxx</merchant_sku>
<response_shipment_sku_quantity json:Integer="true">1</response_shipment_sku_quantity>
</shipment_items>
</shipments>
列jsonrequest = JsonConvert.SerializeXmlNode(DOC、 Newtonsoft.Json.Formatting.None、TRUE)。
{"shipments":[
{
"shipment_tracking_number":null,
"response_shipment_date":"2016-10-18T01:00:00.0000000-04:00",
"response_shipment_method":"UPS Ground",
"expected_delivery_date":"2016-10-18T01:00:00.0000000-04:00",
"ship_from_zip_code":"12345",
"carrier_pick_up_date":"2016-10-18T01:00:00.0000000-04:00",
"carrier":"UPS",
"shipment_items":[
{
"shipment_item_id":"FF12345K",
"alt_shipment_item_id":"1234567890",
"merchant_sku":"B00xxxx",
"response_shipment_sku_quantity":"1"
}]
}]
}
私は"response_shipment_sku_quantity":1
として表示する"response_shipment_sku_quantity":"1"
を必要とするが、それが働いているように見えるdoes notの。変換を実行するXMLまたはコードを変更できます。これができる限り、私は気にしません。
[Json値をNewtonsoftでIntegerに変換する]で説明した「forked」バージョンの「XmlNodeConverter」を使用していますか(https://stackoverflow.com/questions/29909328/convert-a-json-value-to- integer-with-newtonsoft)? – dbc