从Memcache返回的JSON无效

时间:2016-08-25 10:04:27

标签: php json drupal-7 memcached

我有Drupal 7网站。我正在使用Memcache进行缓存。

这就是我将JSON存储到其中的方式

    //creating an object of Memcache
    $cache = new Memcache();
    $cache ->addServer('localhost', 11211);
    //adding a key
    $cacheKey = 'mobile';
    //delete old cache
    $cache ->delete($cacheKey);
    //refresh cache
    $cache ->set($cacheKey, serialize($jsonData));

直到这里才有问题。但是从此缓存中获取JSON时。

返回JSON无法验证

我正在使用http://jsonlint.com/来验证我的JSON。

请注意,但JSON具有正确的数据,但问题是验证。

$Records = $cache->get($cacheKey);

echo '<pre>';
print_r(Records);
exit();

任何帮助都非常感谢。

JSONen

中提到的var_dump()上返回的JSON

string '{"defaults":[{"nid":"213","public_url":"http:\/\/www.mywebsite.com","current_ver'... (length=3033)

1 个答案:

答案 0 :(得分:2)

您在存储数据时使用serialize(),因此在获得数据时需要使用unserialize()

$cache->set($cacheKey, serialize($jsonData));

...

$jsonData = unserialize($cache->get($cacheKey));

虽然没有必要序列化数据,因为Memcache会处理这个:

$cache->set($cacheKey, $jsonData);

...

$jsonData = $cache->get($cacheKey);

修改

要了解您的确切内容:

var_dump($cacheKey);
var_dump($jsonData);
$cache->set($cacheKey, $jsonData);

...

$jsonData = $cache->get($cacheKey);
var_dump($cacheKey);
var_dump($jsonData);