从 HTTP 响应解析 JSON

Parsing JSON from HTTP response

本文关键字:JSON 响应 HTTP      更新时间:2023-09-26

假设我有一个包含代码行的URL http://example.com/product/12345。该URL是电子商务网站的产品页面,该页面中有一个"添加到购物车"按钮。

单击该按钮时,它会发送有关所查看产品的 HTTP POST 并返回以下 JSON 响应:

{
"products": [
{
"id":            722,
"link":          "http://example.com/product/123123",
"image_link":    "http://example.com/prodcut/image/thumb.jpg",
"image_width":   "45",
"image_height":  "45",
"quantity":      1,
.... and so on...

我想知道是否可以在不知道哪个函数调用它的情况下解析响应,因为:

  1. 该页面由多个视图(从不同的控制器呈现)组成
  2. 我尝试做这样的事情:

    console.log(response.products),或;控制台.log(产品)

然而,所有这些都给出了"未定义"的错误...

谁能帮我这个?非常感谢。

我可以为您指出确切的文件,如果这有帮助的话:

    /
  1. themes/yourtheme/js/modules/blockcart/ajax-cart.js如果不存在,请查看/modules/blockcart/ajax-cart.js

查看下面的代码注释行"//将 ajax 请求发送到服务器"

  1. 在 Smarty 模板文件中形成的 JSON 答案blockcart-json.tpl/themes/yourtheme/modules/blockcart//modules/blockcart/

因此,如果您将控制台.log放在 Ajax-CART 中.js

success: function(jsonData,textStatus,jqXHR)
            {
                console.log(jsonData.products); // not parsed json here of course
                ...
                },

它应该有效。

使用 JSON.parse(response) 转换为

Json 对象,并使用 JSON.stringify(response) 再次转换为字符串