11

在互联网上进行广泛搜索后,我确信 Prestashop 不会以 JSON 格式返回数据,它只会以 XML 格式返回(不幸的是,这会导致跨域访问问题)。

现在,我正在尝试将 XML(由 Prestashop 返回)转换为 JSON。我想编写可以从 Web 服务获取 XML 并返回 JSON 的 php 代码。为此,我尝试了许多教程但徒劳无功。转换后的 JSON 没有价值,所以没用。我尝试的方法如下。

http://www.sitepoint.com/php-xml-to-json-proxy/
PHP 将 XML 转换为 JSON

要转换的 XML:

<name>
<language id="1" xlink:href="http://localhost/prestashop/api/languages/1">
<![CDATA[ iPod Nano ]]>
</language>
</name>

返回的 JSON:

"name":{"language":{"@attributes":{"id":"1"}}}
4

4 回答 4

53

我不知道对此的历史支持,但是...

在最新版本的 Prestashop(当前为 v1.6.0.9)中,您可以通过附加output_format=JSON到您的请求查询字符串来从任何 WebService API 请求中获取 JSON 响应。

例如 http://example.prestashop.com/api/products?output_format=JSON

于 2014-11-03T17:09:17.067 回答
2

使用 php 梨“ XML_Serializer ”:

{
  "product": {
    "id_category_default": "XXX",
    "id_tax_rules_group": "1",
    "type": "simple",
    "id_shop_default": "1",
    "reference": "XXXXXXXX",
    "price": "XX.XXXXXX",
    "active": "1",
    "redirect_type": "404",
    "id_product_redirected": "0",
    "available_for_order": "1",
    "condition": "new",
    "show_price": "1",
    "indexed": "0",
    "visibility": "both",
    "advanced_stock_management": "0",
    "link_rewrite": {
      "language": {
        "_attributes": {
          "id": "1"
        },
        "_content": "ipod-nano"
      }
    },
    "name": {
      "language": {
        "_attributes": {
          "id": "1"
        },
        "_content": "iPod Nano"
      }
    },
    "associations": {
      "categories": {
        "category": {
          "id": "XXX"
        }
      },
      "stock_availables": {
        "stock_available": {
          "id": "XXXX",
          "id_product_attribute": "X"
        }
      }
    }
  }
}

请参阅此链接https ://www.prestashop.com/forums/topic/602449-aporte-webservice-prestashop-16-json-request-post-y-put/#elComment_2930631

于 2018-07-27T14:44:18.470 回答
1

只添加 ?output_format=JSON 结束 url

http://example.com/api/products?output_format=JSON

于 2019-10-27T23:04:30.643 回答
-1

Prestashop 有 die(Tools::jsonEncode([Associative Array])) 用于 ajax 返回或仅删除 die 用于非 ajax 返回。

于 2015-03-13T10:12:00.673 回答