Json_encode добавляет дополнительные кавычки? - PullRequest
0 голосов
/ 28 мая 2011

http://codepad.org/zmsXbqhu

У меня очень простой код (для просмотра выше):

<?php
$js = json_encode( "HO" );
var_dump( $js );
?>

Возвращает строку с дополнительными кавычками:

string (4) "" HO ""

Есть идеи, почему это так?

Ответы [ 4 ]

5 голосов
/ 28 мая 2011

Потому что вы var_dump'ing. Оборачивает это в кавычки. Если вы не используете var_dump и echo, вы увидите реальную строку.

Вот, взгляните на это:

http://codepad.viper -7.com / KB5Fkk

Код

 <?php

$js = json_encode( '{ book : "how to use json", author: "some clever guy" }' );
var_dump( $js );

echo "<br /> The actual string:<br />";
echo $js;
?>

Выход:

string(61) ""{ book : \"how to use json\", author: \"some clever guy\" }"" 
The actual string:
"{ book : \"how to use json\", author: \"some clever guy\" }"
2 голосов
/ 28 мая 2011

В JSON ...

A string - это последовательность из нуля или более символов Юникода, заключенная в двойные кавычки с использованием обратной косой черты.

источник

1 голос
/ 28 мая 2011

Если вы сделаете это так:

$json = json_encode("HO");
echo $json;

будет возвращено следующее:

"HO"

Причина, по которой ваш код возвращает что-то подобное:

string(4) ""HO""

означает, что вы использовали var_dump(), что не может рассматриваться как замена echo (см. Документацию var_dump () ).

0 голосов
/ 28 мая 2011

Поскольку представление JSON для строки заключено в кавычки. Вы закодировали строку, и вот как она представлена ​​в JSON.

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