那JSON无效吗?

时间:2015-11-26 16:22:02

标签: javascript php jquery json

我使用Opencart并扩展功能。在这种情况下 - 这是一个扩展颜色选项的脚本。

情况是generalL服务器php生成的json-string JavaScript可以使用。 JSON测试字符串的示例:

{
    "110": {
        "black": {
            "hexcolor": "000000",
            "image": "http://ocart.com/image/cache//ajaxcolor/71653fa77e1f98208ff736d6ca0f0909-500x500.jpg",
            "thumb_image": "http://ocart.com/image/cache//ajaxcolor/71653fa77e1f98208ff736d6ca0f0909-228x228.jpg"
        },
        "white": {
            "hexcolor": "000033",
            "image": null,
            "thumb_image": null
        }
    }
}

层次结构(110)中的第一个元素是html选择选项值,颜色集合基于。

秒元素(“黑色”或“白色”)是用户将看到彩色框的颜色描述。

最后三个字段用于表示每种选定的颜色。

问题是:JQuery拒绝使用此JSON: 它大炮解析它宣布

  

SyntaxError:意外的令牌on.parseJSON @jquery-2.1.1.min.js:4(匿名函数)@ ajaxcolor.js:14j @jquery-2.1.1.min.js:2k.fireWith @jquery-2.1 .1.min.js:2n.extend.ready @jquery-2.1.1.min.js:2I @jquery-2.1.1.min.js:2ere

  1. 没有解析的对象看起来不寻常:
  2. trying to screen json without parsing

    以下是代码

    的示例
        function getProductId() {
        return $("input[name='product_id']").attr('value');
    }
    
    function getJson(product_id) {
        console.log("http://ocart.com/index.php?route=ajaxhelper/test&product_id=" + product_id);
        var data = $.getJSON("http://ocart.com/index.php?route=ajaxhelper/test&product_id=" + product_id);
        return data;
        }
    
    
    $(document).ready(function() {    
        var option_info = (getJson(getProductId()));
    
        console.log(option_info);
    })
    

    所以请告诉我我做错了什么。

1 个答案:

答案 0 :(得分:3)

$.getJSON()是一个异步函数。你做不到

var data = $.getJSON("http://ocart.com/index.php?route=ajaxhelper/test&product_id=" + product_id);
return data;

相反,你必须在结果回来时处理结果:

$.getJSON("http://ocart.com/index.php?route=ajaxhelper/test&product_id=" + product_id)
    .then(function(data){
        //Do what you need to do with data
    });