如何将此对象转换为 PHP 中的数组
Posted
技术标签:
【中文标题】如何将此对象转换为 PHP 中的数组【英文标题】:How can I convert this object to an array in PHP 【发布时间】:2014-03-12 18:04:18 【问题描述】:作为参考,我正在使用 EasyPost(运费 API)进行 php 调用,检查运费等等。他们的代码都是关于使用它将数据作为 PHP 对象回显到页面,但我正在尝试使用 jQuery ajax 从中获取 JSON 数据以在我的 ember.js 应用程序中使用。
在与来自 EP (EasyPost) 的人讨论为什么我无法将其正确编码为 JSON 以用于我的应用程序时,他告诉我从 EP 返回的是一个 PHP 对象,并且我需要构建一个数组在 json_encode 起作用之前。
以下是他们网站的示例响应...
"id": "prcl_WDv2VzHp",
"object": "Parcel",
"length": 20.2,
"width": 10.9,
"height": 5.0,
"predefined_package": null,
"weight": 65.9,
"created_at": "2013-04-22T05:40:57Z",
"updated_at": "2013-04-22T05:40:57Z"
我对 PHP 的了解还不够,无法理解如何从这个数组构建一个数组,然后能够对其进行 json_encode。
还应注意,某些响应的点看起来像这样......
"from_address":
"id": "adr_VgoLT6Ex",
"object": "Address",
"name": "Jon Calhoun",
"company": null,
"street1": "388 Townsend St",
"street2": "Apt 20",
"city": "San Francisco",
"state": "CA",
"zip": "94107",
"country": "US",
"phone": "4154567890",
"email": null,
"created_at": "2013-04-22T05:39:57Z",
"updated_at": "2013-04-22T05:39:57Z"
,
和...
"rates": [
"id": "rate_nyCb6ubX",
"object": "Rate",
"service": "FirstClassPackageInternationalService",
"rate": "9.50",
"carrier": "USPS",
"shipment_id": "shp_vN9h7XLn",
"created_at": "2013-04-22T05:40:57Z",
"updated_at": "2013-04-22T05:40:57Z"
,...
希望有人能指出我正确的方向,如果我了解如何取出每一位并使其成为数组中的索引,我想我可以从那里开始。因为我真的不需要一些返回的数据。
【问题讨论】:
你看过json_decode吗? us1.php.net/json_decode这是关于SO ***.com/questions/5164404/json-decode-to-array的帖子$array=json_decode($json, true);
会给你一个数组
json_decode 有效,我认为出于某种原因,只有当您尝试将 json 转换为数组或对象而不是相反时。
呃...你发布的是 JSON。为什么不能直接发送给客户并用 JS 解析?
我试过了,但由于某种原因它正在发送所有空对象
【参考方案1】:
你可以使用 JQuery serialize()
obj.serialize();
并将其发布到服务器中的 php 文件中
在那个 php 文件中使用 json_decode
$arr = json_decode($_POST['receivedData'],true);
【讨论】:
以上是关于如何将此对象转换为 PHP 中的数组的主要内容,如果未能解决你的问题,请参考以下文章
将带有数组的 JavaScript 对象转换为 PHP 数组