将json导出为字符串(不是数组)

时间:2009-11-04 15:56:20

标签: php javascript arrays string

有些人看到了代码:

<?php 
echo stripslashes(json_encode(glob("photos-".$_GET["folder"].'/*.jpg')));
?>

它回应了一个非常好的完美字符串:

["photos-animaux/ani-01.jpg","photos-animaux/ani-02.jpg","photos-animaux/ani-02b.jpg","photos-animaux/ani-03.jpg","photos-animaux/ani-04.jpg","photos-animaux/ani-05.jpg","photos-animaux/ani-06.jpg","photos-animaux/ani-07.jpg","photos-animaux/ani-08.jpg","photos-animaux/ani-09.jpg","photos-animaux/ani-10.jpg","photos-animaux/ani-11.jpg","photos-animaux/ani-12.jpg","photos-animaux/ani-13.jpg","photos-animaux/ani-14.jpg"]

使用json编码,它应该发送一个数组,所以变量[0]应该=到photos-animaux / ani-01.jpg

现在它只是字符串的fisrt caracter ..

如何将数组转换为字符串,以及如何在javascipt中将字符串转换为数组以便能够获取值[0] [1]等。

问题是什么时候或者为什么完美的数组转换成字符串呢?

4 个答案:

答案 0 :(得分:3)

从可用库here中使用JSON.parse()比使用eval()更可取,因为它只读取JSON字符串,从而避免了与eval()相关的不安全安全风险。

答案 1 :(得分:1)

为了将JSON编码的字符串解析为实际的javascript对象,您需要eval()返回的数据,以便javascript对数据执行:

var data = eval(json_string)

请记住,当您信任源时,您应该只对字符串运行eval,并确保不会发生脚本注入攻击,因为javascript将运行字符串中的所有内容。

答案 2 :(得分:1)

使用http://json.org/

底部列出的其中一个JSON库

答案 3 :(得分:0)

  

时间或原因

如果我理解正确,两者的答案都是json_encode():请查看文档。将变量转换为字符串(通常称为序列化展平)非常common operation