0

JSONを渡すJS関数があります。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変数として感じていない可能性があります.JSON.stringifyを介して解析しようとしましたが、すべての引用符の前にバックスラッシュが付き、それも好きではありません.

ここで見えない私の弱い心は何ですか?

編集:私の PHP 配列は別の配列にあるため、 [["hello',"123","456"]] の結果であり、一重括弧 [ ] ではありません

4

2 に答える 2

1

数値を文字列に変換する:

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

JSON は、数字 (引用符なし) と文字列 (引用符付き) をサポートしています。文字列を強制的に使用するには、次を試してください。

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