我正在尝试从此json返回数组
$jsondata = "{ 'map' : {'center': {'lat': 24.68599, 'lng': 46.7026558},
'zoom': 16}, 'marker': { 'position': {'lat': 24.68599, 'lng': 46.7026558 },
'icon': '<?php bloginfo('stylesheet_directory'); ?
>/resources/images/temp/marker.png' } }";
$result = json_decode($jsondata, true);
结果始终为null。 谁能告诉我原因以及如何解决? 我想单引号必须替换为双引号,但这还是行不通的。
答案 0 :(得分:2)
您正在使用单引号'
,而不是双引号"
作为密钥。
$jsondata = '{ "map" : {"center": [...]
此外,“ bloginfo”部分存在问题。
您编写的代码没有意义。
假设bloginfo
是一个函数,该函数返回表示路径的字符串,并且您可以直接从当前作用域调用它,然后可以调用它,将路径的最后一部分附加,最后将JSON编码为正确地逃避每个字符。
这种方式:json_encode( bloginfo("stylesheet_directory") .
'/resources/images/temp/marker.png' )
整个事情变成了:
$jsondata = '{ "map" : {"center": {"lat": 24.68599, "lng": 46.7026558},
"zoom": 16}, "marker": { "position": {"lat": 24.68599, "lng": 46.7026558 },
"icon": '. json_econde( bloginfo("stylesheet_directory") .
'/resources/images/temp/marker.png' ). ' } }';
答案 1 :(得分:1)
构建JSON时,以下代码不会运行您期望的PHP代码...
'icon': '<?php bloginfo('stylesheet_directory'); ?
>/resources/images/temp/marker.png' } }";
如果您尝试输出最终的JSON字符串,您可能会发现它不是您的期望。相反,您应该按部分构建字符串...
'icon': '". bloginfo('stylesheet_directory').
"/resources/images/temp/marker.png' } }";
您还需要更改它以使用双引号以及其他答案中指出的内容。所以您需要同时做这两项...
$jsondata = '{ "map" : {"center": {"lat": 24.68599, "lng": 46.7026558},
"zoom": 16}, "marker": { "position": {"lat": 24.68599, "lng": 46.7026558 },
"icon": "'.bloginfo('stylesheet_directory').'/resources/images/temp/marker.png" } }';