如何将此对象转换为 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 中的数组的主要内容,如果未能解决你的问题,请参考以下文章

如何在PHP中将对象转换为特定格式的数组

将带有数组的 JavaScript 对象转换为 PHP 数组

如何将多维数组转换为json对象[关闭]

如何将带有参数数组的字符串 xml 转换为 .NET Core 中的对象

如何将 json 对象键转换为不同的数组来删除重复项

如何在javascript中将嵌套对象转换为对象数组? [关闭]