找到正确的路径,这阵

问题描述:

我使用Mavenlink API来创建一个项目中的“ID”:找到正确的路径,这阵

$response = $client->createWorkspace(array("title" => $project_number . ' ' . $company_name, "creator_role" => "maven")); 

print_r($response); 

$project_id = $response->id; 

echo "project id: " . $project_id; 

创建项目的部分工作正常,但我无法找到正确的路径“ID”。我需要这个ID,这样我就可以使用更新方法向项目添加更多信息。

下面有响应输出的屏幕截图:

enter image description here

原始响应:

{"count":1,"workspaces":{"12220207":{"title":"34343 Add New","archived":false,"description":"","due_date":"","effective_due_date":"","start_date":"","budgeted":true,"change_orders_enabled":true,"updated_at":"2016-05-12T10:51:01-07:00","created_at":"2016-05-12T10:51:01-07:00","consultant_role_name":"FUEL","client_role_name":"Clients","percentage_complete":0,"access_level":"open","exclude_archived_stories_percent_complete":false,"can_create_line_items":true,"default_rate":"125.00","currency_symbol":"$","currency_base_unit":100,"can_invite":true,"has_budget_access":true,"tasks_default_non_billable":false,"rate_card_id":null,"workspace_invoice_preference_id":null,"posts_require_privacy_decision":false,"require_time_approvals":false,"require_expense_approvals":false,"stories_are_fixed_fee_by_default":false,"price":"TBD","price_in_cents":null,"budget_used":"$0","over_budget":false,"currency":"USD","expenses_in_burn_rate":true,"budget_used_in_cents":0,"total_expenses_in_cents":0,"status":{"color":"grey","message":"Not Started","key":130},"permissions":{"can_upload_files":true,"can_private_message":true,"can_join":false,"is_participant":true,"access_level":"admin","team_lead":true,"user_is_client":false},"creator_id":"10340340030","id":"12220207"}},"results":[{"key":"workspaces","id":"12220207"}]} 

当我回声PROJECT_ID,它显示为空白。什么是目标“ID”的正确途径?

谢谢!

+0

你可以在问题中发布'$ response'。 –

+0

其显示在屏幕截图 – cpcdev

+0

需要原始,请发布。 –

只是json解码,你会得到它。假设你有你的json $json

Online check

$arr = json_decode($json);  
echo $arr->workspaces->{12220207}->id; //12220207 

为了得到结果id

echo $arr->results[0]->id; //12220207 
+0

即时通讯困惑..在你提供的代码你仍然提供的ID?这是我不知道,并试图提取 – cpcdev

+0

请检查在线支票。你的'json'中有这个id作为关键。 –

+1

真棒..没有看到你的编辑!谢谢!很棒! – cpcdev

$json = '{"count":1,"workspaces":{"12220207":{"title":"34343 Add New","archived":false,"description":"","due_date":"","effective_due_date":"","start_date":"","budgeted":true,"change_orders_enabled":true,"updated_at":"2016-05-12T10:51:01-07:00","created_at":"2016-05-12T10:51:01-07:00","consultant_role_name":"FUEL","client_role_name":"Clients","percentage_complete":0,"access_level":"open","exclude_archived_stories_percent_complete":false,"can_create_line_items":true,"default_rate":"125.00","currency_symbol":"$","currency_base_unit":100,"can_invite":true,"has_budget_access":true,"tasks_default_non_billable":false,"rate_card_id":null,"workspace_invoice_preference_id":null,"posts_require_privacy_decision":false,"require_time_approvals":false,"require_expense_approvals":false,"stories_are_fixed_fee_by_default":false,"price":"TBD","price_in_cents":null,"budget_used":"$0","over_budget":false,"currency":"USD","expenses_in_burn_rate":true,"budget_used_in_cents":0,"total_expenses_in_cents":0,"status":{"color":"grey","message":"Not Started","key":130},"permissions":{"can_upload_files":true,"can_private_message":true,"can_join":false,"is_participant":true,"access_level":"admin","team_lead":true,"user_is_client":false},"creator_id":"6333747","id":"12220207"}},"results":[{"key":"workspaces","id":"12220207"}]}'; 
$result = json_decode($json,true);  
//print_r($result); 
echo $result['results'][0]['id']; 

http://sandbox.onlinephpfunctions.com/code/27d4ff8d1632177db97f9e9122e7a51bd6e11146

您需要的JSON首先使用json_decode解码。

$response = json_decode($raw); 

您可以将其打印出来,以便您可以使用print_r查看布局。

print_r($response); 

正如你可以看到它使它成为一个对象,所以你可以很容易地访问信息。在结果和内部工作空间下,ID都是相同的。因此你有2个解决方案。

要么

$id = $response->results[0]->id; 

或者

$id = $response->workspaces->{12220207}->id; 

这显然是糟糕的,因为12220207不是一个静态的数字。

+0

12220207是正在搜索,所以基本上'$反应 - >工作区 - > {12220207} - > ID;'将返回12220207. –

+0

@PeterDarmis,从哪里得到这个信息,OP搜索与'12220207'? –

+0

@PeterDarmis下次他改变了他的参数(标题和创建者角色),他将很可能得到一个不同的工作空间,具有不同的ID。他不是在寻找这个ID,而是以此作为回应。很愚蠢downvote。 – GunniH