我有一个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:超出最大调用堆栈大小
我尝试过用自己准备JSON的方法:
var json = '[["'+place_name+'","'+longitude+'","'+latitude+'"]]';
但是传递它也不喜欢 - 也许它不是感觉它是一个JSON var,我尝试通过JSON.stringify解析它但我在每个引用之前都得到了反斜杠而它没有那样的。
我的虚弱心灵在这里看不到什么?
编辑:我的PHP数组在另一个数组中,因此[[“hello',”123“,”456“]]的结果而不是单括号[]
答案 0 :(得分:1)
JSON支持数字(不带引号)和字符串(带引号)。要强制它使用字符串,请尝试:
var json = [[text_var,number_var + "",number_var + ""]];
答案 1 :(得分:1)
将数字转换为字符串:
var json = [[text_var,number_var.toString(),number_var.toString()]];