开发者

Zend: ContextSwitch Json coming back slashed up

In my init I have:

   $contextSwitch   = $this->_helper->getHelper('ForceContext');
   $contextSwitch->addActionContext('favourite-listing', 'json')->initContext();

In my controller method I have:

    public function favouriteListingAction() {

    $newValues = array();

    if (isset($_POST['Playlist']) && is_array($_POST['Playlist'])) {
        foreach ($_POST['Playlist'] as $key => $value) {
            $response = $this->checkAction('Playlist', $value, 0, 1, 'favourite');
            $newValues['Playlist'][$value] = $response;
        }
    }

    if (isset($_POST['Clip']) && is_array($_POST['Clip'])) {
        foreach ($_POST['Clip'] as $key => $value) {
            $response = $this->checkAction('Clip', $value, 0, 1, 'favourite');
            $newValues['Clip'][$value] = $response;
        }
    }
    $this->view->favourites = $newValues;
}

However calling this, returns:

    {"loggedIn":true,"request":{},"response":{"headersSentThrowsException":true},"translate":{},"favourites":{"Clip":{"726":"<img src=\"\/design\/images\/icon\/subscribe.png\" \/> Add Clip To Favourites","727":
"<img src=\"\/design\/images\/icon\/subscribe.png\" \/> Add Clip To Favourites","728":"<img src=\"\/design\/images\/icon\/subscribe.png\" \/> Add Clip To Favourites","729":
"<img src=\"\/design\/images\/icon\/subscribe.png\" \/> Add Clip To Favourites","730":
"<img src=\"\/design\/images\/icon\/subscribe.png\" \/> Add Clip To Favourites","731":"<img src=\"\/design\/images\/icon\/subscribe.png\" \/> Add Clip To Favourites","732":
"<img src=\"\/design\/i开发者_如何学Pythonmages\/icon\/subscribe.png\" \/> Add Clip To Favourites"}}}

As you can see, its adding slashes, which causes issues. Is there away to stop it doing this?


Possible magic quotes configured on server?

Magic Quotes


To my mind, this behavior is normal, your JSON parser should remove these slashes. I personnaly use the JQuery $.ajax() function for my Ajax projects, you have to set the dataType to JSon (one of my colleague got problem while trying to get the result as text and parsing it in an other way).

$.ajax( ... ,dataType : "json", ...);


If you don't find your problem you could always just run function stripslashes http://php.net/manual/fr/function.stripslashes.php on the data to strip it of its extra slashes.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜