我想对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格式....
答案 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.'">';
?>