从php生成json时出现引号问题

时间:2014-01-22 11:24:05

标签: php json

我试图使用PHP生成一个json,我从表单中获取数据。事实是我需要使用json格式的引号,并尝试使用\"添加它。但它不起作用。如果有人可以帮助我,我会感激不尽!

以下是代码:

$clave = $_GET["laclave"];
$arrayClave = unserialize(base64_decode($clave));
$guardar = array();

foreach ($arrayClave as $value){
    $valorA = ("\"".$value."\":\"".$_GET[$value]."\"");
    $guardar[] = $valorA;
}

$fp = fopen('datatodo/prueba.json', 'w');
fwrite($fp, json_encode($guardar));
fclose($fp);

2 个答案:

答案 0 :(得分:1)

Json_encode为你做了一切,只需给它一个数组就可以搞清楚了: - )

$clave = $_GET["laclave"];
$arrayClave = unserialize(base64_decode($clave));

$fp = fopen('datatodo/prueba.json', 'w');
fwrite($fp, json_encode($arrayClave));
fclose($fp);

答案 1 :(得分:1)

来自manual page for json_encode()

  

string json_encode ( mixed $value [, int $options = 0 [, int $depth = 512 ]] )

     

返回包含值的JSON表示的字符串。

     

<强>值

     

正在编码的值。可以是除资源之外的任何类型   所有字符串数据都必须采用UTF-8编码。

您必须自己照顾的是生成UTF-8(如果您的源数据使用不同的编码)。这可以通过mb_convert_encoding()iconv()

来完成

您还应该测试返回值,因为您可能不希望为无效输入生成文件:

  

成功时返回JSON编码的字符串,或者 FALSE失败

拥有一个手动生成JSON的函数是没有意义的,即使在PHP中也是如此; - )