所以我想以这种格式为角应用生成我的JSON。结果将用于下拉列表,我需要它采用这种特殊格式
[
{
id:1,
post_title:title1},
{
id:2,
post_title:title1},
{
id:3,
post_title:title3},
and so on ...
]
但是当我将我的JSON发送回我的角度应用程序时,它看起来像这样
{
"0": {
"id": "1",
"post_title": "Batman Ipsum"
},
"1": {
"id": "2",
"post_title": "Title fit for a (precariously enthroned) king"
},
"2": {
"id": "3",
"post_title": "Cupcake Ipsum"
},
"3": {
"id": "4",
"post_title": "The most presidential lorem ipsum in history."
},
"4": {
"id": "5",
"post_title": "Quote Ipsum"
},
"5": {
"id": "6",
"post_title": "Yet another Batman Ipsum"
},
"6": {
"id": "9",
"post_title": "Yet another Harry Potter ipsum"
},
"7": {
"id": "10",
"post_title": "Vegetable Ipsum"
}
}
如何将其更改为我想要的格式?
我的php
代码
function fetchPagesNames()
{
$response = array();
$resultArray=array();
try {
$sql = "SELECT id,post_title FROM posts";
$result = mysql_query($sql) or trigger_error(mysql_error() . $sql);
$resultCount = mysql_num_rows($result);
if ($resultCount > 0) {
while ($row = mysql_fetch_assoc($result)) {
$resultArray[]=$row;
}
$response['status'] = 'Success';
$response['message'] = "Post's Obtained";
$response['results'] = $resultArray;
} else {
$response['status'] = 'Error';
$response['message'] = 'No Pages in the Database';
die();
}
echo json_encode($response,JSON_FORCE_OBJECT);
} catch (exception $e) {
$response['status'] = 'Error';
$response['message'] = $e->getMessage();
echo json_encode($response);
die();
}
}
需要进行哪些更改?
答案 0 :(得分:0)
从JSON_FORCE_OBJECT
删除json_encode()
。
答案 1 :(得分:0)
将json_encode
用于打印对象。
或者看起来像这样......
try {
$sql = "SELECT * FROM tekst";
$result = $dao->conn->query($sql);
//$resultCount = mysql_num_rows($result);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
$resultArray[] = $row;
}
echo json_encode(
$resultArray
);
} else {
$response['status'] = 'Error';
$response['message'] = 'No Pages in the Database';
die();
}
} catch (exception $e) {
$response['status'] = 'Error';
$response['message'] = $e->getMessage();
echo json_encode($response);
die();
}
答案 2 :(得分:0)
您的“必需”格式与您获得的输出之间存在两个主要差异:
您引用的格式实际上并不是有效的JSON,因为您错过了引号。
JSON格式非常明确,因为它必须包含属性名称和字符串值的引号。在这方面,您输出的JSON是正确的。
您所需的输出有一个外层是一个数组,而您的实际输出有一个对象,编号元素为字符串。
这是因为您在JSON_FORCE_OBJECT
的通话中使用了json_encode()
。此参数强制将JSON输出的所有部分作为对象而不是数组进行处理。删除它,你将得到你正在寻找的顶级数组。