Свойства десериализации xml null API торговой площадки Walmart

У меня проблема с десериализацией XML из API Walmart Items.

Это код, который я использую для десериализации ответа. У кого-нибудь есть идеи о том, как десериализовать свойства без пространства имен? Я попытался установить пространство имен по умолчанию на http://walmart.com/ но это не сработало.

Это код.

var resp = await client.GetAsync(fullurl);
var serializer = new XmlSerializer(typeof(T));
string xmlstr = await resp.Content.ReadAsStringAsync();
using (TextReader reader = new StringReader(xmlstr))
{
    T itemResps = (T)serializer.Deserialize(reader);
}

Свойства в ns:price (currenty, amount) не имеют пространства имен, в то время как все другие элементы имеют пространство имен.

Это ответ сервера API Walmart:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:ItemResponses xmlns:ns2="http://walmart.com/">
    <ns2:ItemResponse>
        <ns2:mart>WALMART_US</ns2:mart>
        <ns2:sku>WALSKU000</ns2:sku>
        <ns2:wpid>FFOEKJFJSI</ns2:wpid>
        <ns2:upc>887276146249</ns2:upc>
        <ns2:gtin>00887276146249</ns2:gtin>
        <ns2:productName>Samsung Galaxy Tab E Lite 7&quot; 8GB Tablet - Android 4.4 KitKat</ns2:productName>
        <ns2:productType>Tablet Computers</ns2:productType>
        <ns2:price>
            <currency>USD</currency>
            <amount>107.00</amount>
        </ns2:price>
        <ns2:publishedStatus>SYSTEM_PROBLEM</ns2:publishedStatus>
    </ns2:ItemResponse>
    <ns2:ItemResponse>
        <ns2:mart>WALMART_US</ns2:mart>
        <ns2:sku>WALSKU001</ns2:sku>
        <ns2:wpid>XDHEUHFIHEE</ns2:wpid>
        <ns2:upc>045496590086</ns2:upc>
        <ns2:gtin>00045496590086</ns2:gtin>
        <ns2:productName>Nintendo Switch Gaming Console with Gray Joy-Con</ns2:productName>
        <ns2:productType>Video Game Consoles</ns2:productType>
        <ns2:price>
            <currency>USD</currency>
            <amount>399.99</amount>
        </ns2:price>
        <ns2:publishedStatus>UNPUBLISHED</ns2:publishedStatus>
    </ns2:ItemResponse>
</ns2:ItemResponses>

Это пример ответа от API Walmart. Он не содержит пространства имен для всех элементов. Я думаю, что так и было. но это больше не приходит.

<?xml version="1.0" encoding="UTF-8"?>
<ItemResponses xmlns:ns2="http://walmart.com/">
  <ItemResponse>
    <mart>WALMART_US</mart>
    <sku>379third908</sku>
    <gtin>00313159099947</gtin>
    <productName>Carex Soft Grip Folding Cane - Black Walking Cane</productName>
    <productType>Walking Canes</productType>
    <price>
      <currency>USD</currency>
      <amount>13.27</amount>
    </price>
    <publishedStatus>IN_PROGRESS</publishedStatus>
  </ItemResponse>
  <ItemResponse>
    <mart>WALMART_US</mart>
    <sku>prodtest1571</sku>
    <upc>889296686590</upc>
    <gtin>00889296686590</gtin>
    <productName>REFURBISHED: HP 250 G3 15.6" Notebook, Intel 4th Gen i3, 4GB RAM, 500GB HDD, Win 8.1, M5G69UT#ABA</productName>
    <productType>RAM Memory</productType>
    <price>
      <currency>USD</currency>
      <amount>329.99</amount>
    </price>
    <publishedStatus>PUBLISHED</publishedStatus>
  </ItemResponse>
</ItemResponses>

0 ответов

Другие вопросы по тегам