правильно экранировать строки в данные JSON в PHP - PullRequest
1 голос
/ 27 июня 2011

У меня есть довольно длинная строка, содержащая практически все, что я хочу преобразовать в JSON из PHP. Есть ли простой способ сделать это? Например, я хотел бы, чтобы этот выход JSON работал:

<?php
   $var = "hel\"lo";
   $var2 = "hel\nlo";
   echo "[\"".$var."\", \"".$var2."\"]"; // should give me the data: hel"lo and hel<new line>lo
?>

Ответы [ 5 ]

6 голосов
/ 27 июня 2011

Создайте структуру данных PHP и затем выполните ее через json_encode . Не пытайтесь создавать JSON, объединяя строки.

$foo = array($var, $var2);
echo json_encode($foo);
3 голосов
/ 27 июня 2011
$var = "hel\"lo";
$var2 = "hel\nlo";
echo json_encode(array($var, $var2));
3 голосов
/ 27 июня 2011

Вы можете использовать json_encode (EDIT - я изменил массив так, чтобы при кодировании вывод был тем, что было запрошено)

var $json = array('hello','hello');

echo (json_encode($json));

посмотрите здесь для справки.

EDIT - чтобы использовать json_encode, вы должны иметь php vesion> 5.20.если вам нужна альтернатива, вы можете использовать компонент zend_framework Zend_JSON

2 голосов
/ 27 июня 2011

json_encode и json_decode должны помочь.

http://php.net/manual/en/function.json-encode.php

1 голос
/ 27 июня 2011

Вы можете использовать это: Json - кодировать функцию PHP

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...