Это правильный формат JSON - PullRequest
0 голосов
/ 12 марта 2010

Я хочу получить четкое представление о формате json ... Я использую php, в котором я преобразовал свой массив результатов в json следующим образом

$result = mysql_query("select dStud_id,dMarkObtained1,dMarkObtained2,
                dMarkObtained3,dMarkTotal from tbl_internalmarkallot");
$JsonVar = json_encode($res);

echo "<input type='text' name='json' id='json' value ='$JsonVar'>";

И текстовое поле показывает

{"0":"101","dStud_id":"101","1":"60","dMarkObtained1":"60","2":"80", "dMarkObtained2":"80","3":"80","dMarkObtained3":"80","4":"220","dMarkTotal":"220"}

Это правильный формат JSON ....

Ответы [ 4 ]

7 голосов
/ 12 марта 2010

В сети есть JSON-валидатор , и он говорит, что это действительно JSON. Если вы используете JSON чаще, я бы порекомендовал плагин JSON View firefox.

1 голос
/ 12 марта 2010

Эта конкретная строка является допустимой JSON. Тем не менее:

echo "<input type='text' name='json' id='json' value ='$JsonVar'>";

отсутствует вызов htmlspecialchars, поэтому, если в одном из ваших значений есть одинарная кавычка, вы получите неработающий атрибут, что приведет к неправильным JSON и HTML-инъекциям, что приведет к потенциальным дырам в безопасности XSS .

Не забудьте HTML-escape каждую текстовую строку, которую вы выводите в HTML, например ::

<input type="text" name="json" id="json" value="<?php echo htmlspecialchars($JsonVar); ?>">

или вы можете использовать опции PHP 5.3 JSON_HEX, чтобы гарантировать отсутствие специальных символов HTML, избегая необходимости в этом шаге:

<?php $jsonVar= json_encode($res, JSON_HEX_TAG|JSON_HEX_QUOT|JSON_HEX_AMP); ?>
<input type="text" name="json" id="json" value="<?php echo $jsonVar; ?>">
0 голосов
/ 12 марта 2010

это правильно, но лучше использовать что-то вроде этого:

<?php
  $myResultArray = array();
  $result = mysql_query("select dStud_id,dMarkObtained1,dMarkObtained2, dMarkObtained3,dMarkTotal from tbl_internalmarkallot");

  while ($row = mysql_fetch_array($result)) {
    static $i = 0;
    $myResultArray[$i] = $row;
    $i++;
  }

  $JsonVar = json_encode($myResultArray);

  echo '<input type="text" name="json" id="json" value="'.$JsonVar.'">';
?>
0 голосов
/ 12 марта 2010

Анализатор json на http://json.parser.online.fr/ говорит, что это допустимый json.

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