c#在将XML转换为JSON时强制使用整数

本文关键字:整数 JSON 在将 XML 转换 | 更新日期: 2023-09-27 18:17:19

我试图将XML转换为JSON,以便生成对API的HTTP POST请求。我得到一个错误,因为其中一个字段是一个整数,而不是一个字符串。从我所读到的添加"json:Integer="true"到节点将导致它成为一个int,但这似乎不适合我。下面是xml和生成的json。数组正常工作,但整数不正常。

<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>

string jsonrequest = JsonConvert。SerializeXmlNode(医生,Newtonsoft.Json.Formatting。没有,真的);

{"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,但它似乎不工作。我可以修改XML或执行转换的代码。我不在乎是哪一种,只要能做到就行。

c#在将XML转换为JSON时强制使用整数

属性定义错误。它应该是这样的

<response_shipment_sku_quantity json:Type='Integer'>1</response_shipment_sku_quantity>
编辑:

Newtonsoft。Json XmlNodeConverter

private void SerializeNodestring dataType = GetDataType(node);方法,它们提出了这个定义。

另一种选择是Deserialize xmlclass与适当的属性类型,之后Serialize Json