【问题标题】:Javascript parsing the html text error at json at position x [duplicate]Javascript在位置x的json解析html文本错误[重复]
【发布时间】:2016-09-26 07:29:15
【问题描述】:

这是我的 js 小提琴和到目前为止我试图转义的文本我试图转义这些字符的 php 代码

 $datas[] = ['attributes' => [$colorId => ['id' => $child->getColor(),
                                    'name' => $product->getName(),
                                    'productId' => $product->getId(),
                                    'price' => number_format($product->getSpecialPrice(),2),
                                    'rrp' => number_format($product->getMsrp(), 2),
                                    'was' => number_format($product->getPrice(), 2),
                                    'image' =>  Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'catalog/product' . $child->getImage(),
                                    'size' => $child->getSize(),
                                    'description' =>Mage::helper('core')->quoteEscape(htmlspecialchars(json_encode($product->getDescription()), ENT_COMPAT, 'UTF-8', false)),

                                    // Mage::helper('core')->quoteEscape($product->getDescription()),
                                    'promo' => Mage::helper('core')->quoteEscape($product->getProductpromobox()),
                                    'sku' => $product->getSku(),
                                    'netsuite' => $product->getInternalId()
                                    ],

                                    $sizeId => ['id' => $child->getSize(),
                                    'name' => $product->getName(),
                                    'productId' => $product->getId(),
                                    'price' => number_format($product->getSpecialPrice(),2),
                                    'rrp' => number_format($product->getMsrp(), 2),
                                    'was' => number_format($product->getPrice(), 2),
                                    'image' =>  Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'catalog/product' . $child->getImage(),
                                    'color' => $child->getColor(),
                                    'description' => Mage::helper('core')->quoteEscape(json_encode(utf8_encode($product->getDescription()), ENT_COMPAT, 'UTF-8', false)),

                                    // Mage::helper('core')->quoteEscape($product->getDescription()),
                                    'promo' => Mage::helper('core')->quoteEscape($product->getProductpromobox()),
                                    'sku' => $product->getSku(),
                                     'netsuite' => $product->getInternalId()]

                                    ]];

在我的 javascript 文件中,我所做的是

var productConfig = '<?php echo json_encode($datas);?>';

所以这是 php 代码,所以错误仅在解析时的描述键处 https://jsfiddle.net/tsjfkwto/

【问题讨论】:

标签: javascript php jquery escaping


【解决方案1】:

不要包含's:

var productConfig = <?php echo json_encode($datas);?>;
// No ' here -------^--------------------------------^

json_encode 为赋值的右侧输出一个有效的 JavaScript 值(因为 JSON 是 JavaScript 文字语法的子集)。如果您正在编码一个简单的字符串,它将有适当的引号;如果您正在编码一个对象结构,它将具有正确的对象结构(不应包含在引号中)。

【讨论】:

    猜你喜欢
    • 2011-10-30
    • 1970-01-01
    • 2012-04-10
    • 2017-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-23
    • 1970-01-01
    相关资源
    最近更新 更多