这是一个正确的json格式

时间:2010-03-12 09:24:44

标签: php json

我想对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 个答案:

答案 0 :(得分:7)

有一个在线JSON validator,它是有效的JSON。如果您经常使用JSON,我会推荐JSON View firefox插件。

答案 1 :(得分:1)

该特定字符串是有效的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; ?>">

答案 2 :(得分:0)

http://json.parser.online.fr/上的json解析器说这是有效的json。

答案 3 :(得分:-1)

这是正确的,但你最好使用这样的东西:

<?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.'">';
?>