从 JSON 数组中获取电子邮件
Get email from JSON array
我正在尝试使用 fiken.no 的 API 来检索客户编号。 API 基于 HAL+JSON,我想使用 PHP.
访问数据
创建新帐户时,您没有收到任何响应,只有 HTTP 201,因此要获取生成的客户编号,我需要使用搜索端点。
仅限该端点 returns 所有用户都喜欢这样:
{
"_links": {
"self": {
"href": "https://fiken.no/api/v1/companies/fiken-demo-personlig-gnist-enk/contacts"
}
},
"_embedded": {
"https://fiken.no/api/v1/rel/contacts": [
{
"_links": {
"self": {
"href": "https://fiken.no/api/v1/companies/fiken-demo-personlig-gnist-enk/contacts/757941482"
}
},
"name": "Ola Nordmann 2",
"email": "mail@mail.com",
"address": {
"country": "Norge"
},
"customerNumber": 10003
},
{
"_links": {
"self": {
"href": "https://fiken.no/api/v1/companies/fiken-demo-personlig-gnist-enk/contacts/757941171"
}
},
"name": "Ola Nordmann 1",
"email": "findthis@example.com",
"address": {
"country": "Norge"
},
"customerNumber": 10002
},
{
"_links": {
"self": {
"href": "https://fiken.no/api/v1/companies/fiken-demo-personlig-gnist-enk/contacts/756867201"
}
},
"name": "Demoleverandør",
"address": {
"address1": "Demoveien 44",
"address2": "",
"postalPlace": "Oslo",
"postalCode": "0190",
"country": "Norge"
},
"supplierNumber": 20001
},
{
"_links": {
"self": {
"href": "https://fiken.no/api/v1/companies/fiken-demo-personlig-gnist-enk/contacts/756867200"
}
},
"name": "Demokunde",
"address": {
"address1": "Demoveien 22",
"address2": "",
"postalPlace": "Oslo",
"postalCode": "0190",
"country": "Norge"
},
"customerNumber": 10001
}
]
}}
从这个响应中,我需要查询 f.ex 电子邮件 findthis@example.com 并从中获取整个用户对象。这包括地址数据,尤其是客户编号。我该怎么做?
我发现了这个: 这看起来像我的问题,但这里的键在 JSON 数组中是常量。这里是从 0 到无穷大。
有没有比正常 JSON 做法更好的使用 PHP 处理此问题的方法?
首先是将 JSON 解码为数组:
$resultArray = json_decode($yourJSONvariable, true);
接下来我建议将联系人数组从 JSON 数组中分离出来:
$contacts = $resultArray["_embedded"]["https://fiken.no/api/v1/rel/contacts"];
现在 $contacts
应该是 API 通话中所有联系人的数组。您可以遍历每一个以找到具有匹配电子邮件的记录,如下所示:
foreach ($contacts as $contact) {
if ($contact["email"] == "findthis@example.com") {
$mycontact = $contact;
break;
}
}
$mycontact
现在将包含具有匹配电子邮件的联系人数组,您可以使用字段名称作为数组索引来访问其各个字段(例如,$mycontact["name"]
、$mycontact["address"]["country"]
, $mycontact["_links"]["self"]["href"]
).要查看数组中的所有数据,请执行 var_dump($contacts)
我正在尝试使用 fiken.no 的 API 来检索客户编号。 API 基于 HAL+JSON,我想使用 PHP.
访问数据创建新帐户时,您没有收到任何响应,只有 HTTP 201,因此要获取生成的客户编号,我需要使用搜索端点。
仅限该端点 returns 所有用户都喜欢这样:
{
"_links": {
"self": {
"href": "https://fiken.no/api/v1/companies/fiken-demo-personlig-gnist-enk/contacts"
}
},
"_embedded": {
"https://fiken.no/api/v1/rel/contacts": [
{
"_links": {
"self": {
"href": "https://fiken.no/api/v1/companies/fiken-demo-personlig-gnist-enk/contacts/757941482"
}
},
"name": "Ola Nordmann 2",
"email": "mail@mail.com",
"address": {
"country": "Norge"
},
"customerNumber": 10003
},
{
"_links": {
"self": {
"href": "https://fiken.no/api/v1/companies/fiken-demo-personlig-gnist-enk/contacts/757941171"
}
},
"name": "Ola Nordmann 1",
"email": "findthis@example.com",
"address": {
"country": "Norge"
},
"customerNumber": 10002
},
{
"_links": {
"self": {
"href": "https://fiken.no/api/v1/companies/fiken-demo-personlig-gnist-enk/contacts/756867201"
}
},
"name": "Demoleverandør",
"address": {
"address1": "Demoveien 44",
"address2": "",
"postalPlace": "Oslo",
"postalCode": "0190",
"country": "Norge"
},
"supplierNumber": 20001
},
{
"_links": {
"self": {
"href": "https://fiken.no/api/v1/companies/fiken-demo-personlig-gnist-enk/contacts/756867200"
}
},
"name": "Demokunde",
"address": {
"address1": "Demoveien 22",
"address2": "",
"postalPlace": "Oslo",
"postalCode": "0190",
"country": "Norge"
},
"customerNumber": 10001
}
]
}}
从这个响应中,我需要查询 f.ex 电子邮件 findthis@example.com 并从中获取整个用户对象。这包括地址数据,尤其是客户编号。我该怎么做?
我发现了这个:
有没有比正常 JSON 做法更好的使用 PHP 处理此问题的方法?
首先是将 JSON 解码为数组:
$resultArray = json_decode($yourJSONvariable, true);
接下来我建议将联系人数组从 JSON 数组中分离出来:
$contacts = $resultArray["_embedded"]["https://fiken.no/api/v1/rel/contacts"];
现在 $contacts
应该是 API 通话中所有联系人的数组。您可以遍历每一个以找到具有匹配电子邮件的记录,如下所示:
foreach ($contacts as $contact) {
if ($contact["email"] == "findthis@example.com") {
$mycontact = $contact;
break;
}
}
$mycontact
现在将包含具有匹配电子邮件的联系人数组,您可以使用字段名称作为数组索引来访问其各个字段(例如,$mycontact["name"]
、$mycontact["address"]["country"]
, $mycontact["_links"]["self"]["href"]
).要查看数组中的所有数据,请执行 var_dump($contacts)