2013-05-30 40 views
9

Sau khi tìm kiếm rộng rãi trên internet, tôi chắc chắn rằng Prestashop không trả về dữ liệu ở định dạng JSON, nó chỉ trả về định dạng XML (điều này dẫn đến vấn đề truy cập miền chéo không may).Dịch vụ web Prestashop trả lại JSON

Bây giờ, tôi đang cố chuyển đổi XML (được trả về bởi Prestashop) thành JSON. Tôi muốn viết mã php có thể lấy XML từ dịch vụ web và gửi lại JSON. Vì mục đích này tôi đã thử nhiều hướng dẫn nhưng vô ích. JSON được chuyển đổi không có giá trị trong nó, vì vậy là vô dụng. Các phương pháp tôi đã thử được liệt kê bên dưới.

http://www.sitepoint.com/php-xml-to-json-proxy/
PHP convert XML to JSON

XML để chuyển đổi:

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

Returned JSON:

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

Tôi hy vọng cho sự giúp đỡ trong vấn đề này. Cảm ơn bạn.

+2

Tôi chưa bao giờ sử dụng dịch vụ web Prestashop, nhưng có thể dễ dàng bỏ qua mã nơi Prestashop tạo XML và thay thế bằng mã mà bạn tạo json mà bạn cần. Đây chỉ là một ý tưởng. – romainberger

Trả lời

30

Tôi không biết về hỗ trợ lịch sử cho điều này, nhưng ...

Trong phiên bản mới nhất của Prestashop (hiện v1.6.0.9), bạn có thể nhận được một phản ứng JSON từ bất kỳ yêu cầu WebService API bởi thêm output_format=JSON vào chuỗi truy vấn yêu cầu của bạn.

Ví dụ: http://example.prestashop.com/api/products?output_format=JSON

+1

Vẫn hoạt động trong 1.7.2, câu trả lời này phải được chấp nhận. – mikiqex

+0

FYI, giá trị output_format phân biệt chữ hoa chữ thường. Vì vậy, nếu nó không hoạt động, hãy đảm bảo bạn sử dụng JSON thay vì json. – Kiddo

-2

Prestashop đã chết (Công cụ :: jsonEncode ([Associative Array])) để trả lại ajax hoặc chỉ xóa phần chết để không trả lại ajax.

Các vấn đề liên quan