Javascript 将MySQL数据转义为输出到JSON的最佳方法是什么?

Javascript 将MySQL数据转义为输出到JSON的最佳方法是什么?,javascript,mysql,json,perl,escaping,Javascript,Mysql,Json,Perl,Escaping,我需要从MySQL输出数组的javascript数组的数据 我正在使用这段代码,除了REPLACE函数外,它运行良好 我需要按照JS格式修改进入JS数组的反向comas“-”中的所有文本。可用于一次过的所有字段。 我需要一个将转义所有数据的replace函数,即\->\\;“->\”;换行符->\n 输出 最好的方法可能是在MySQL之外进行 $data = $sth->fetchrow_arrayref(); $json = encode_json($data); encode_jso

我需要从MySQL输出数组的javascript数组的数据 我正在使用这段代码,除了REPLACE函数外,它运行良好 我需要按照JS格式修改进入JS数组的反向comas“-”中的所有文本。可用于一次过的所有字段。 我需要一个将转义所有数据的replace函数,即\->\\;“->\”;换行符->\n

输出
最好的方法可能是在MySQL之外进行

$data = $sth->fetchrow_arrayref();
$json = encode_json($data);
encode_json由提供


encode_json由等提供。

使用PHP并不总是一个选项。如果希望存储过程在表中插入一行,其中一个或多个字段是json格式的字符串,该怎么办

use Data::Dumper;
$Data::Dumper::Terse = 1;
$Data::Dumper::Indent = 0;

$sth=$dbh->prepare('
    SELECT d6tag, d6id, d6name, d6cat, d6date
    FROM d6lastdate
    ORDER BY d6date
');$sth->execute();

$json=Dumper($sth->fetchall_arrayref);
你最初的方法几乎是好的。。。如果您认为结果不是有效的JSON:

您需要使用双引号而不是简单引号作为字符串分隔符 不要忘了避开反斜杠\太多 如果字符串包含特殊字符,请确保它们以UTF-8编码 最后一个逗号将导致问题,需要删除 埃里克

编辑:您还需要转义回车、制表符和其他一些字符。请查看此页上的字符串定义:。
您可以使用验证生成的json字符串。

只对查询结果进行json编码不是更好吗?哇,您真的想从SQL进行json编码吗?我只是想看看是否可以直接从SQL生成json,因为我的SELECT语句有一半需要输出json。。但我没有尝试DBIx::JSON。@Atul Gupta,已修复,所以现在只是Perl。@CanSpice,我相信他的意思是,也不是。这两个响应最初都使用了fetchrow_数组,而它们本应该也使用fetchrow_arrayref。现在更好了?在表中再添加一个字段来存储json格式的字符串是个好主意,这可以在长期内完成,因为目前我的数据库不太稳定,而且它的结构每天都在修改。$sth=$dbh->prepare'SELECT GROUP_CONCAT json_string FROM d6lastdate'$执行某事物$json=$sth->fetchrow\u数组;
$data = $sth->fetchrow_arrayref();
$json = encode_json($data);
$sth=$dbh->prepare('
    SELECT d6id, d6name,d6date
    FROM d6lastdate
');
$sth->execute();
$json = encode_json($sth->fetchrow_arrayref());
use Data::Dumper;
$Data::Dumper::Terse = 1;
$Data::Dumper::Indent = 0;

$sth=$dbh->prepare('
    SELECT d6tag, d6id, d6name, d6cat, d6date
    FROM d6lastdate
    ORDER BY d6date
');$sth->execute();

$json=Dumper($sth->fetchall_arrayref);