簡體   English   中英

格式化 JSON 輸出

[英]Format JSON Output

我正在將 WordPress 自定義帖子類型作為 JSON 提要傳遞給我的應用程序。

我創建了一個 JSON 頁面模板,它查詢並顯示如下結果:

$directories [] = array(
'subtype' => 'mcms',
'type' => 'maps', 
'summary' => get_the_title(),
'title' => get_the_title(),
'address' => get_field('address'),
'content' => get_the_content(),
'author' => get_the_author()
  );
endwhile;
wp_reset_query();
echo json_encode ($directories);

輸出結果是:

[
{
"subtype": "mcms",
"type": "maps",
"summary": "Directory Listing",
"title": "Directory Listing",
"address": false,
"content": "Lorem ipsum dolor sit amet",
"author": "admin"
}
]

我想按如下方式格式化輸出:

"items:" [
{
"subtype": "mcms",
"type": "maps",
"summary": "Directory Listing",
"title": "Directory Listing",
"address": false,
"content": "Lorem ipsum dolor sit amet",
"author": "admin"
}
]

我正在嘗試以下操作:

 echo  "items: ", json_encode ($directories);

但輸出不是我需要的 JSON 格式

有什么幫助嗎?

在調用json_encode之前將您的$directories包裝在一個數組中。

$items = ['items' => $directories];

echo json_encode($items);

在數組中添加目錄是解決方案:

echo json_encode (array('items' => $directories));

改變這一行

$directories[] = array(...

對此

$directories['items'][] = array(...

而你的回聲就這樣離開了

echo json_encode($directories);

你可以讓你的輸出是這樣的:

[
    {
        "items:" [
            {
                "subtype": "mcms",
                "type": "maps",
                "summary": "Directory Listing",
                "title": "Directory Listing",
                "address": false,
                "content": "Lorem ipsum dolor sit amet",
                "author": "admin"
            }
        ]
     }
]

您需要為項目創建一個對象,然后創建一個哈希圖

Map<String, List<KeyValue>> map = new HashMap();
map.put("items", itemObject);
JsonBuilderFactory jsnFactory = Json.createBuilderFactory(null);
JsonObjectBuilder builder = jsnFactory.createObjectBuilder();
for (String key : map.keySet()) {
    builder.add(keu,map.get(key));
}
return builder.build().toString();

返回

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM