web-dev-qa-db-fra.com

API Amazon Product Advertising: comment obtenir une réponse JSON pour ItemLookup / Search

J'essaie d'obtenir les détails du produit Amazon à partir de son ASIN. L'API du produit permet de faire un Itemlookup avec ASIN, mais la valeur de retour est dans XML.

Je veux faire cet appel pour Itemlookup du côté client, donc je voudrais faire un appel JSONP, que je n'ai pas pu trouver.

J'ai trouvé quelques articles sur le Web pour convertir le XML au format JSON en utilisant la feuille de style XSLT:

(a) https://bitbucket.org/basti/python-Amazon-product-api/src/tip/examples/json-results.py

J'ai essayé d'utiliser ce python-Amazon-product-api et cet exemple, mais je n'ai pas pu obtenir de retour JSON.

(b) http://www.kokogiak.com/gedankengang/2006/05/consuming-amazons-web-api-directly.html

La demande que j'ai essayé d'envoyer est:

http://xml-us.amznxslt.com/onca/xml?AWSAccessKeyId=[ACCESS KEY]&AssociateTag=[ASSOCIATE TAG]&ContentType=text%2Fjavascript&IdType=ASIN&ItemId=B008IEGS9W&Operation=ItemLookup&ResponseGroup=Images%2CItemAttributes&Service=AWSECommerceService&Style=http%3A%2F%2Fforums.delphiforums.com%2Fdelphidocsz%2Famazon%2Fjson.xsl&Timestamp=2012-09-04T06%3A40%3A11Z&Signature=AGOqXvVSeMp3YyVkT4mGNXVx0cFGG%2Bh%2FdAebevbbF9o%3D

Aidez-moi à obtenir un format JSON avec Amazon product API. Toutes suggestions sont les bienvenues.


L'OP peut exécuter cette feuille de style (document d'entrée non utilisé) pour déterminer sa version XSLT.

<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:msxsl="urn:schemas-Microsoft-com:xslt"
  exclude-result-prefixes="xsl msxsl">
<xsl:output method="html" indent="yes"/>

<xsl:template match="/">
  <html>
    <head><title>About your XSLT Processor</title></head> 
   <body>
     <ul>
       <li>xsl:version=<xsl:value-of select="system-property('xsl:version')" /></li>
       <li>xsl:vendor=<xsl:value-of select="system-property('xsl:vendor')" /></li>
       <li>xsl:vendor-url=<xsl:value-of select="system-property('xsl:vendor-url')" /></li>
       <li>xsl:product-name=<xsl:value-of select="system-property('xsl:product-name')" /></li>
       <li>xsl:product-version=<xsl:value-of select="system-property('xsl:product-version')" /></li>
       <li>xsl:is-schema-aware=<xsl:value-of select="system-property('xsl:is-schema-aware')" /></li>
       <li>xsl:supports-serialization=<xsl:value-of select="system-property('xsl:supports-serialization')" /></li>
       <li>xsl:supports-backwards-compatibility=<xsl:value-of select="system-property('xsl:supports-backwards-compatibility')" /></li>
       <li>msxsl:version=<xsl:value-of select="system-property('msxsl:version')" /></li>
     </ul>  
   </body>  
 </html>  
</xsl:template>

</xsl:stylesheet>
38
thomastinu

Essayez l'une de ces options ::

  1. Amazon JSON API - Il s'agit d'un service Web Ruby pour transmettre les demandes et traduire les réponses en JSON.
  2. Essayez l'une de ces fonctions Javascript pour convertir le XML que vous avez déjà en JSON:
    1. http://goessner.net/download/prj/jsonxml/
    2. http://davidwalsh.name/convert-xml-json
    3. http://www.fyneworks.com/jquery/xml-to-json/
    4. http://www.thomasfrank.se/xml_to_json.html

J'ai moi-même essayé thomasfrank. C'est facile et fonctionne bien :)

6
SashaZd

(divulgation) Je suis Max et je suis cofondateur de Zinc (zinc.io). Notre API produit une réponse JSON pour les prix et la page de détails du produit. Voici une réponse typique pour les détails ASIN: https://www.dropbox.com/s/peccdc1m2j34e0d/B018QPI98A.json?dl= . Si vous êtes intéressé, voyez ici: docs.zincapi.com

0
maxko87