Javascript 如果我';您是否使用了json_encode()?
我正在做一些广泛的测试,以了解PHP和JS变量、对象、数组等如何成功地相互传递。关于这个问题有很多令人困惑的问题/答案 就我的测试所示,我可以创建多种PHP对象: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",
$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>