【问题标题】:Adding json to new line将json添加到新行
【发布时间】:2024-05-21 18:40:01
【问题描述】:

我正在使用 MSSQL localDb 和 PHP 来创建 json 以在 javascript 上显示 json 数据。

但标签的文字显示为“blaaa \n blaa”我的基本代码如下;

MSSQL

SELECT field1 + ' \n ' + filed2 FROM table1

PHP 脚本

....    
$PdoStatement=$PdoObject->prepare($SqlQuery);
$PdoStatement->execute();
$PdoResultToArray=$PdoStatement->fetchAll(PDO::FETCH_ASSOC);
$JsonPdoResultArray = array("Datas"=>$PdoResultToArray);
$Json=json_encode(array_merge($JsonSystemArray, $JsonPdoResultArray));
echo $Json;

【问题讨论】:

    标签: php sql-server json


    【解决方案1】:

    你可以这样做

    SELECT CONCAT_WS('\n', field1, filed2) as concatenatedFeild FROM table1
    

    当你需要使用它时,你调用它

    concatenatedFeild

    看看这个也很有帮助

    this

    更新

    SELECT (field1 + CHAR(13) + field2) as concatenatedFeild from table1
    

    【讨论】:

    • 也非常感谢。但显示如“blaaa\nblaa”
    • 我正在为客户端使用 Appcelerator。我正在检查它的结果。
    • @Kerberos 那么会发生什么?
    • 我正在使用 MSSQL "CONCAT_WS" 没有工作。
      在客户端也无法正常工作:(
    【解决方案2】:

    我解决了我的问题如下,

    MSSQL

    SELECT CONCAT(field1, '_Newline_', filed2) AS ConcatedFiled FROM table1
    

    PHP

    ....
    $JsonPdoResultArray = array("Datas"=>$PdoResultToArray);
    $Json=json_encode(array_merge($JsonSystemArray, $JsonPdoResultArray));
    $Json = str_replace("_Newline_","\\n", $Json);
    echo $Json;
    

    【讨论】:

      【解决方案3】:

      尝试像这样连接char(13)
      SELECT field1 + char(13) + filed2 FROM table1

      【讨论】:

      • 非常感谢,但结果是一样的 :( 显示如“blaaa blaa”新行没有显示
      • 但是在 PHP 脚本中是否出现了新行?还是与 char(13) 连接时的 \n?也许问题出在其他地方,不是在查询中,而是在应用程序或代码中。
      • 我解决了我的问题并写了答案。感谢您的帮助。
      最近更新 更多