0

我有一个 JS 函数,我正在传递一些 JSON。我用 PHP 生成这个 JSON:

<?php

$array[] = array('hello','123','456');

echo json_encode($array);

?>

这给了我一些对 JS 来说很简洁的东西,比如:

[["hello","123","456"]]

我的 JS 函数似乎喜欢这种格式。

然而,我遇到的问题是当我直接在 JS 中生成一个类似的数组时,如下所示:

var json = [[text_var,number_var,number_var]]; // these vars established earlier in the code

var json_stringify = JSON.stringify(json);

我最终得到了如下所示的内容:

[["hello",123,456]]

所以基本上,它不是用引号封装我的数字。我认为这无关紧要,但没有它们我会得到一个Uncaught RangeError: Maximum call stack size exceeded

我尝试做一些类似自己准备 JSON 的事情:

var json = '[["'+place_name+'","'+longitude+'","'+latitude+'"]]';

但是传递它也不喜欢 - 也许它不觉得它是一个 JSON var,我已经尝试通过 JSON.stringify 解析它,但我最终在每个引用之前都有反斜杠,它也不喜欢那样.

我虚弱的头脑在这里没有看到什么?

编辑:我的 PHP 数组在另一个数组中,因此是 [["hello',"123","456"]] 的结果,而不是单括号 [ ]

4

2 回答 2

1

JSON 支持数字(不带引号)和字符串(带引号)。要强制它使用字符串,请尝试:

var json = [[text_var,number_var + "",number_var + ""]]; 
于 2013-03-04T17:57:54.750 回答
1

将数字转换为字符串:

var json = [[text_var,number_var.toString(),number_var.toString()]];
于 2013-03-04T17:59:58.447 回答