在通过互联网进行广泛搜索后,我确信Prestashop不会以JSON格式返回数据,它只会以XML格式返回(不幸的是,这会导致跨域访问问题)。
现在,我正在尝试将XML(由Prestashop返回)转换为JSON。我想编写PHP代码,它可以从Web服务中获取XML并发送回JSON。为此目的,我尝试了许多教程,但徒劳无功。转换后的JSON没有值,所以没用。 我尝试过的方法如下所示。
http://www.sitepoint.com/php-xml-to-json-proxy/
PHP convert XML to 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"}}}
答案 0 :(得分:49)
我不知道对此的历史支持,但是......
在最新版本的Prestashop(目前为v1.6.0.9)中,您可以通过将output_format=JSON
附加到请求查询字符串来从任何WebService API请求获取JSON响应。
E.g。
http://example.prestashop.com/api/products?output_format=JSON
答案 1 :(得分:0)
使用php pear“ 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"
}
}
}
}
}
答案 2 :(得分:0)
仅添加?output_format = JSON结束网址
答案 3 :(得分:-2)
Prestashop已经死了(Tools :: jsonEncode([Associative Array]))用于ajax返回或者只是为非ajax返回删除die。