Javascript 在php$上使用json_encode将数组结果获取为字符串,而不是字符串数组

Javascript 在php$上使用json_encode将数组结果获取为字符串,而不是字符串数组,javascript,php,json,Javascript,Php,Json,我试图使用PHPGET方法从另一个页面上的关键字框字段创建一个关键字数组 以下是附加到页面URL的关键字示例: /searchResults.php?关键字框=计算+金融 在我看来这没什么问题,但当我转换为JSON对象时,关键字似乎变成了单个字符串(“计算金融”)而不是字符串数组([“计算”、“金融”) var关键字=; 警报(关键字[0]);//输出“c” 我以为这会输出数组中的第一个单词“computing”,而不是第一个字符“c”,所以我对这些语言有点困惑和陌生。非常感谢您的解释。关键字

我试图使用PHPGET方法从另一个页面上的关键字框字段创建一个关键字数组

以下是附加到页面URL的关键字示例:

/searchResults.php?关键字框=计算+金融

在我看来这没什么问题,但当我转换为JSON对象时,关键字似乎变成了单个字符串(“计算金融”)而不是字符串数组([“计算”、“金融”)

var关键字=;
警报(关键字[0]);//输出“c”

我以为这会输出数组中的第一个单词“computing”,而不是第一个字符“c”,所以我对这些语言有点困惑和陌生。非常感谢您的解释。

关键字框可以是一个数组,只需使用以下命令更改查询字符串:

?keywordBox[]=computing&keywordBox[]=finance
否则,您可以将其保留为字符串,并将其分解

var keywords = <?php echo json_encode(explode(' ', $_GET['keywordBox'])) ?>;
var关键字=;

注意编码的内容

这只编码一个GET参数,而不是
$\u GET
超全局数组:

var keywords = <?php echo json_encode($_GET['keywordBox']) ?>;
var关键字=;

使用给定的URL和参数
keywordBox=computing+finance
$\u GET['keywordBox']
将包含单个字符串
“computing finance”
,而不是数组。如果希望参数包含数组,则需要使用数组表示法,如
keywordBox[]=computing&keywordBox[]=finance

json\u encode返回字符串,字符串的0索引是其第一个字符。@Taplar这不正确。您只在包含JSON的字符串上运行
JSON.parse()
,但这里的输出将是一个文本字符串:“computing finance”。感谢您的回复,我将决定是按照您的建议在URL中使用数组符号还是使用explode更适合我的需要。我明白了,谢谢您的回复,我以为我在编码一个数组,但显然不是。
var keywords = <?php echo json_encode($_GET['keywordBox']) ?>;