我正在尝试为WordPress JSON API插件创建一个自定义控制器,至此一切正常,除了我所拥有的JSON数据格式不正确。如何将JSON输出格式化为所需的格式
这是我目前的JSON输出:
{
"status": "ok",
"all_tags": {
"tag-1": {
"term_name": "Tag 1",
"category_details": {
"0": {
"category_ID": 8,
"category_name": "category 1",
"category_count": 2
},
"2": {
"category_ID": 13,
"category_name": "category 2",
"category_count": 1
}
}
},
"tag-2": {
"term_name": "Tag 2",
"category_details": [
{
"category_ID": 8,
"category_name": "category 1",
"category_count": 2
}
]
}
}
}
然而,为了分析数据,我必须以特定格式 JSON数据。正确的格式应该是这样的:
{
"status": "ok",
"all_tags": [
{
"id": 1,
"term_name": "Tag 1",
"category_details": [
{
"id": 2,
"category_ID": 8,
"category_name": "category 1",
"category_count": 2
},
{
"id": 3,
"category_ID": 13,
"category_name": "category 2",
"category_count": 1
}
]
},
{
"id": 2,
"term_name": "Tag 2",
"category_details": [
{
"id": 2,
"category_ID": 8,
"category_name": "category 1",
"category_count": 2
}
]
}
]
}
这是我正在创建的JSON数组:
<?php
...
$cats_all = array(); // the array
if (!isset($cats_all[$custom_term->slug])) {
// create the array
$cats_all[$custom_term->slug] = array(
'term_name' => $custom_term->name,
'category_details' => array(
array(
'category_ID' => $categories[0]->term_id,
'category_name' => $categories[0]->name,
'category_count' => $mycats[0]->category_count
)
)
);
} else {
$cats_all[$custom_term->slug]['category_details'][] = array(
'category_ID' => $categories[0]->term_id,
'category_name' => $categories[0]->name,
'category_count' => $mycats[0]->category_count
);
}
...
// remove duplicates
$input = $this->super_unique($cats_all);
// return the array for json output by the plugin
return array(
'all_tags' => $input,
);
任何帮助将不胜感激。整个控制器也可以是viewed here。
如何确定'count'和'id'值?它们似乎不符合当前JSON输出中的任何内容。它也似乎很奇怪,应该有重复的'id'值... – trincot
@trincot我刚刚使用了插件的默认控制器输出之一来显示结构应该如何并忘记删除它们。 –
好的,你删除了'count',那么'id'值呢?他们需要吗? – trincot