PHP json_encode 数组输出/错误

4

你好,我有一个涉及it技术的php mysql pdo数组,输出为json格式时,其中会出现\\\字符,我想要删除它们。

我的php代码:

$stmt2 = $this->conn->prepare("SELECT ID,clientName FROM Clients WHERE userID='$userID' OR mainAccountID='$mainAccountID' ORDER BY ID DESC");
$stmt2->execute();
$result = $stmt2 -> fetchAll();

foreach( $result as $userRow2 ) {
  $private_list[] = '{"name":"'.$userRow2['clientName'].'","ID":"'.$userRow2['ID'].'"}';
}

echo json_encode($private_list);

并输出
["{\"name\":\"zz\",\"ID\":\"312\"}","{\"name\":\"jv\",\"ID\":\"311\"}","{\"name\":\"fff2222\",\"ID\":\"309\"}","{\"name\":\"ffff\",\"ID\":\"308\"}","{\"name\":\"v\",\"ID\":\"288\"}","{\"name\":\"t\",\"ID\":\"286\"}","{\"name\":\"s\",\"ID\":\"285\"}","{\"name\":\"r\",\"ID\":\"284\"}","{\"name\":\"p\",\"ID\":\"283\"}","{\"name\":\"o\",\"ID\":\"282\"}","{\"name\":\"n\",\"ID\":\"281\"}","{\"name\":\"m\",\"ID\":\"280\"}","{\"name\":\"l\",\"ID\":\"279\"}","{\"name\":\"k\",\"ID\":\"278\"}","{\"name\":\"j\",\"ID\":\"277\"}","{\"name\":\"i\",\"ID\":\"276\"}","{\"name\":\"h\",\"ID\":\"275\"}","{\"name\":\"g\",\"ID\":\"274\"}","{\"name\":\"f\",\"ID\":\"273\"}","{\"name\":\"e\",\"ID\":\"272\"}","{\"name\":\"d\",\"ID\":\"271\"}","{\"name\":\"c\",\"ID\":\"270\"}","{\"name\":\"b\",\"ID\":\"269\"}","{\"name\":\"a\",\"ID\":\"268\"}"]

我想要移除\字符。

谢谢。


那其实是一个有效的JavaScript字符串,因为...等等什么? - Praveen Kumar Purushothaman
@PraveenKumar 我将在 Swift 应用程序中使用输出,并且当有 '' 时不取值会出错。 - SwiftDeveloper
你不能对JSON数组进行JSON编码... 哈哈。 - Praveen Kumar Purushothaman
@PraveenKumar 通常情况下,JSON输出是有效的,但是其中包含反斜杠字符,并在Swift中出现问题。 - SwiftDeveloper
1
你要么手工拼凑JSON,或者使用json_encode来为你完成;两者都做会导致垃圾数据。 - deceze
1个回答

3

将您的代码更改以包含一个表单。您正在混合使用JavaScript和PHP。所以,做这个:

$private_list = array();
$private_list[] = array(
  "name" => $userRow2['clientName'],
  "ID" => $userRow2['ID']
);

@SwiftDeveloper,祝你愉快!:) - Praveen Kumar Purushothaman
你可以移除那个愚蠢的声明 $private_list = array();!哈哈。 - Praveen Kumar Purushothaman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接