Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果我';您是否使用了json_encode()?_Javascript_Php_Json_Parsing_Decode - Fatal编程技术网

Javascript 如果我';您是否使用了json_encode()?

Javascript 如果我';您是否使用了json_encode()?,javascript,php,json,parsing,decode,Javascript,Php,Json,Parsing,Decode,我正在做一些广泛的测试,以了解PHP和JS变量、对象、数组等如何成功地相互传递。关于这个问题有很多令人困惑的问题/答案 就我的测试所示,我可以创建多种PHP对象: $testarray = ["this", "is", "me"]; $testobject = (object) array("this"=>"that", "is"=>"was",

我正在做一些广泛的测试,以了解PHP和JS变量、对象、数组等如何成功地相互传递。关于这个问题有很多令人困惑的问题/答案

就我的测试所示,我可以创建多种PHP对象:

$testarray = ["this", "is", "me"];
$testobject = (object) array("this"=>"that", "is"=>"was", "me"=>"him");
$teststring = "this is me";
$testint = 9758.25;
然后我可以通过
json\u encode()
(仍然是PHP)传递它们

echo'
var testarray='.json_encode($testarray);
var testobject='.json_encode($testobject);
var teststring='.json_encode($teststring);
var testint='.json_encode($testint.);
';
运行时,会导致:

<script>
    var testarray = ["this","is","me"];
    var testobject = {"this":"that","is":"was","me":"him"};
    var teststring = "this is me";
    var testint = 9758.25;
<script>

var testarray=[“这”、“是”、“我”];
var testobject={“this”:“that”,“is”:“was”,“me”:“him”};
var teststring=“这是我”;
var-testint=9758.25;
我只想确认这个结果是,并且永远是,完全有效的JavaScript?我看不出它有什么问题,但有些资料建议使用
JSON.parse()
。在这种情况下是否需要这样做

我知道,如果JS中的数组或对象是通过
JSON.stringify()
传递的,我就必须解析它


我还知道,要将对象或数组从JS发送到PHP,我必须使用
JSON.stringify()
JSON\u decode()
使它们有效,但似乎
JSON\u encode()
生成有效的JS,而不必使用
JSON.parse()

是的,它是有效的,因为JSON语法是JavaScript对象文字语法的子集。因此,如果您以所示的方式将JSON编码的文本注入到生成的JS代码中,那么它的行为就像是一个对象文本,就像您手工编写的一样

如果您接收到包含JSON编码文本的字符串并将其转换为JavaScript变量(例如,作为AJAX请求的结果),并且需要将其从字符串转换为可用对象,则需要使用
JSON.parse

<script>
    var testarray = ["this","is","me"];
    var testobject = {"this":"that","is":"was","me":"him"};
    var teststring = "this is me";
    var testint = 9758.25;
<script>