我有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()上返回的JSONstring '{"defaults":[{"nid":"213","public_url":"http:\/\/www.mywebsite.com","current_ver'... (length=3033)
答案 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);