2012-08-03 57 views
1

我一直在使用这个例子错误JSON编码和解码的Oauth API - PHP

http://code.google.com/p/oauth-php/wiki/ConsumerHowTo#OAuth_Consumer 

而且在消费者页我传递的PARAMS作为JSON编码字符串创建一个PHP的OAuth API。

$key = '35345345345vertrtertert'; // fill with your public key 
$secret = 'h rtyrtyr767567567567'; // fill with your secret key 
$url = "www.server.com/serverurl.php"; 

$options = array('consumer_key' => $key, 'consumer_secret' => $secret); 
OAuthStore::instance("2Leg", $options); 

$method = "POST"; 
$params = array(
      'radius' => '50', 
      'latitude'=>'13.35', 
      'longitude'=>'17.35' 
    ); 
$params = json_encode($params); 

而在服务器页面(即serverurl.php)正在打印使用

print_r($_REQUEST); 

请求和我使用JSON解码解码的字符串,但我得到这个值作为

Array 
(
    [radius] => 50 
    [latitude] => 13_35 
    [longitude] => 17_35 
) 

._取代经纬度 如何管理这个

+0

如果一直这样做,只需执行'str_replace()'。这是一个冒险的解决方案,但它会起作用。 – Matt 2012-08-03 14:20:15

+0

但我不认为这是很好的解决方案:) – Warrior 2012-08-03 14:21:12

回答

1

看来,在你的编码/解码过程中,这个值正试图解析许多东西。如果你真的想用这些值作为数字,你不应该把数组设置为字符串。试试这个

$params = array(
    'radius' => 50, 
    'latitude'=> 13.35, 
    'longitude'=> 17.35 
); 

注意,我已删除了周围的数引号,以便将它们作为编码过程的数字处理。

+0

如果我删除报价,foreach($ _ REQUEST as $ key => $ value) { \t $ array_val = $ key; } $ decode_val = json_decode($ array_val,true); print_r($ decode_val);这段代码什么都没有输出 – Warrior 2012-08-03 14:27:30

+0

@Warrior在执行json_encode之后你得到了什么值'var_dump($ params)'? – 2012-08-03 14:29:38

+0

string(48)“{”radius“:50,”latitude“:13.35,”longitude“:17.35}” – Warrior 2012-08-03 14:31:21