Amazon Product Advertising API:如何获取ItemLookup / Search的JSON响应

时间:2012-09-04 06:49:19

标签: xml xslt jsonp amazon cors

我正在尝试从其ASIN获取亚马逊产品的详细信息。产品API允许使用ASIN执行Itemlookup,但返回值位于XML

我想从客户端调用Itemlookup,所以想要进行JSONP调用,这是我找不到的。

我在网上发现了一些文章,使用XSLT样式表将XML转换为JSON格式:

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

我尝试使用此python-amazon-product-api和此示例,但我无法获得JSON返回。

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

我尝试发送的请求是:

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

请帮助您使用Amazon product API获取JSON格式。欢迎任何建议。


OP可以运行此样式表(未使用输入文档)来确定他的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>

2 个答案:

答案 0 :(得分:5)

尝试其中任何一个::

  1. Amazon JSON API - 这是一个ruby Web服务,用于传递请求并将响应转换为JSON。
  2. 尝试使用以下任何Javascript函数将您已有的XML转换为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
  3. 我自己尝试过thomasfrank。它很容易,效果很好:)

答案 1 :(得分:1)

(披露)我是Max,我是Zinc(zinc.io)的联合创始人。我们的API为定价和产品详细信息页面生成JSON响应。以下是ASIN详细信息的典型响应:https://www.dropbox.com/s/peccdc1m2j34e0d/B018QPI98A.json?dl=0。如果您有兴趣,请访问:docs.zincapi.com