清理从PHP数组转换的格式化JSON [复制]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我正在尝试使用查询数据库的PHP在JSON中获取以下格式...请注意,没有最终的逗号

[
      {
        "ID": "4",
        "Name": "Jill Higgins",
        "Job Title": "Designer",
        "Organisation": "Design Widget",
        "Organisation Type": "Academia",
        "Latitude": "54.669978",
        "Longitude": "-1.452469"
    },
    {
        "ID": "5",
        "Name": "Bob Billy",
        "Job Title": "Clown",
        "Organisation": "Big Comp INC",
        "Organisation Type": "Company",
        "Latitude": "54.669978",
        "Longitude": "-1.452469"
    }
]

这是我目前的代码......

if (PerchUtil::count($members)) {

echo '[';

foreach ($members as $Member) {
  //prepare the data
  $data = array(
    'ID' => $Member->memberID(),
    'Name' => $Member->first_name() . ' ' . $Member->last_name(),
    'Job Title' => $Member->expert_job_title(),
    'Organisation' => $Member->expert_org_name(),
    'Organisation Type' => $Member->expert_org_type(),
    'Latitude' => $Member->expert_org_latitude(),
    'Longitude' => $Member->expert_org_longitude()
  );
}
echo ']';
}

header('Content-Type: application/json');

这就是它目前的样子......注意最后有一个我不需要的逗号。括号中的间距不是很有用...如何修改PHP以使其更清晰并计算最终的逗号?

[{
    "ID": "4",
    "Name": "Jill Higgins",
    "Job Title": "Designer",
    "Organisation": "CPI",
    "Organisation Type": "Academia",
    "Latitude": "54.669978",
    "Longitude": "-1.452469"
},{
    "ID": "5",
    "Name": "Bob Billy",
    "Job Title": "Clown",
    "Organisation": "Big Comp INC",
    "Organisation Type": "Company",
    "Latitude": "54.669978",
    "Longitude": "-1.452469"
},]
php arrays json
1个回答
4
投票

$data中创建要编码的数据数组,使用$data[] =然后使用echo json_encode($data);添加每个项目以获得正确的格式...

if (PerchUtil::count($members)) {
    $data = [];
    foreach ($members as $Member) {
      //prepare the data
      $data[] = array(
         'ID' => $Member->memberID(),
         'Name' => $Member->first_name() . ' ' . $Member->last_name(),
         'Job Title' => $Member->expert_job_title(),
         'Organisation' => $Member->expert_org_name(),
         'Organisation Type' => $Member->expert_org_type(),
         'Latitude' => $Member->expert_org_latitude(),
         'Longitude' => $Member->expert_org_longitude()
      );
    }
    echo json_encode($data, JSON_PRETTY_PRINT);
}
© www.soinside.com 2019 - 2024. All rights reserved.