如何在php json响应中追加两行字符串

时间:2016-01-07 07:48:00

标签: php json

{
    "employees": [{
        "name": "Chicken Shawarma",
        "price": "510.00",
        "nutrients": "A
        B "
    }]
}

这是我的json回复,在我的应用程序中,我为“营养素”设置了两行记录。例如:

A
B

这个谷在数据库中保存没有任何问题(My SQL),现在我希望将“营养素”数据显示为两行记录。但它显示错误

SyntaxError: unterminated string literal

如果您有任何想法请与我分享。

这是我的服务器端代码

        if ($itemInfo->num_rows() == 1) {
        $row = $itemInfo->row_array();       
        $json_arr = $_GET['callback'] . '(' .
                "{'name' : '" . $row['name'] . "',"
                . "'nutrients' : '" . $row['nutrients'] . "',"
                . "'img' : '" . $row['img'] . "'}" . ')';
    } else {
        $json_arr = json_encode(array('status' => 'N'));
    }

    echo $json_arr;

这是我的客户端代码

    $http.jsonp(full_url).success(function (data) {
        $scope.item = data ;
    });

1 个答案:

答案 0 :(得分:2)

您的主要问题是通过连接字符串来进行JSON响应。在这种情况下,您会错过所需的编码/转义等。所以,首先你应该创建一个关联数组,然后在$json_arr = $_GET['callback'].'('.json_encode($your_json_like_array).')';子句中完全像else一样。

结果代码应如下所示:

$json_arr = array(
    'name' => $row['name'], 
     ..., 
    'nutrients' => $row['nutrients']
);
$json_arr = $_GET['callback'].'('.json_encode($json_arr).')';