如何处理JSON对象响应?

时间:2011-07-03 03:52:11

标签: php json

我正在使用Google Oauth 2,最后能够获得访问令牌。 Google只是在JSON对象中返回了访问令牌。输出打印在我的浏览器上。由于我之前从未接触过JSON或任何其他API,因此我不知道如何捕获该JSON对象,以便存储访问令牌。

示例输出(遮盖实际数据)

{
"access_token":"1/6GKFqrOr6000000004k10qgr000000GiUiRNbLnc",
"token_type":"Bearer",
"expires_in":3600,
"refresh_token": "1/Vx34LfPISDuX000000Kq_SJWIgf42FVs"
}

我尝试了简单的$ token = $ _POST ['access_token'];这没用。 json_decode也没用。我很确定我不是在这里做的。有人能告诉我如何与JSON对象进行交互吗?

编辑:

我想我最初的问题更为简陋,因为我是API编程的新手。我想知道的是如何将JSON对象的浏览器响应封装到变量中,这样我的PHP脚本就可以动态解码响应。目前,浏览器刚刚回复了我上面发布的JSON对象的内容,但我不知道对象名称或变量名称,如$ object = {}。有没有办法找出对象名称或将响应动态放入对象或数组的方法?

3 个答案:

答案 0 :(得分:2)

{
"access_token":"1/6GKFqrOr6000000004k10qgr000000GiUiRNbLnc",
"token_type":"Bearer",
"expires_in":3600,
"refresh_token": "1/Vx34LfPISDuX000000Kq_SJWIgf42FVs"
}

在Json对象中放置完整的响应:然后JSONObject jObject = new JSONObject(response);

现在获取您的访问令牌:String value = jObject.getString(“access_token”); http://developer.android.com/reference/org/json/JSONObject.html

http://www.androidcompetencycenter.com/2009/10/json-parsing-in-android/

答案 1 :(得分:1)

你试过json_decode($ output,true)。如果给出第二个参数,它将返回一个关联数组。

答案 2 :(得分:0)

我刚刚运行它,它就像一个魅力:

 $f = <<<HER
 {
 "access_token":"1/6GKFqrOr6000000004k10qgr000000GiUiRNbLnc",
 "token_type":"Bearer",
 "expires_in":3600,
 "refresh_token": "1/Vx34LfPISDuX000000Kq_SJWIgf42FVs"
 }
 HER;
 $c = json_decode($f);
 echo $c->access_token;

您是否尝试访问该属性,就像它是一个数组?在这种情况下$c['access_token']将失败 - $ c不是数组,它是一个对象。这就是我刚用$c->access_token;输出结果的原因。如果您愿意,可以将TRUE作为第二个参数传递给json_decode,但事实是,我不知道这是否真的有必要。