更新:
感谢所有建议(我做了什么来获得-3?我不明白)
我发现数据字段设置为VARCHAR并将JSON截断为255个字符,使其无效。我改变了,根据JSONlist.com
,JSON现在有效但它仍然拒绝吃东西,所以有可能会有更多的缺点,这是当前的代码,有什么我做错了吗?
JSON: [{"名称":"影像/ front_8mhztpaj.jpg"" usrName":" GEDC0041.JPG""大小&# 34;:805229,"类型":"图像/ JPEG""缩略图":"影像/ front_8mhztpaj.jpg"&#34 ; thumbnail_type":"图像/ JPEG"" thumbnail_size":10490"字符串searchstr":" front_8mhztpaj.jpg,:sStrEnd&#34 ;}]
新守则:
<?php
$json = $DETAILS->getColumnVal("IMAGE");
//
json_decode($json, true);
?>
<?php if ($DETAILS->getColumnVal("IMAGE") != "") { ?>
<?php $imgsrc = "input/".$myImage = $myArray[0]['name']; ?>
<img src="<?php echo $imgsrc ?>" class="img-responsive center-block" alt="<?php echo $DETAILS->getColumnVal("TITLE"); ?>"> <?php echo $imgsrc; ?>
<?php } ?>
</div>
</div>
<?php
$DETAILS->moveNext();
}
$DETAILS->moveFirst(); //return RS to first record
?>
当我要求它回应&#34; IMAGE&#34;时,查询仍然正常工作。它显示了我在这里发布的json字符串,但是在图像数据应该是的页面中它只显示&#34;输入/&#34;之后没有文字。
我做错了什么?
答案 0 :(得分:0)
您提供的JSON格式错误,缺少结束标记。似乎反斜杠是强制性的,如果您不需要逃避路径,则可以将其删除。 ( @亚历克斯叔)
另外,一个好的做法是避免PHP在代码中间打开/关闭标记。这样可以减少它的混乱。
<?php
$json = $DETAILS->getColumnVal("IMAGE");
// Stripslashes() is mandatory
$myArray = json_decode(stripslashes($json), true);
// Security check in case json_decode returns false.
if ($myArray) {
$myImage = $myArray[0]["name"];
$myTitle = $DETAILS->getColumnVal("TITLE");
// Into a double quoted string, you can 'inject' php vars.
// just put it like $myVar or wrap it with {$myVar}
echo "<img src=\"input/{$myImage}\" class=\"img-responsive center-block\" alt=\"{$myTitle}\">";
}
答案 1 :(得分:0)
解决
我遇到的主要问题(感谢你们)是包含JSON的数据字段被设置为VARCHAR,并被截断为255个字符。
我遇到的第二个问题是php错误
json_decode($json, true);
应阅读:
$myArray = json_decode($json, true);
感谢所有帮助过的人
答案 2 :(得分:-2)
您需要先从JSON字符串中删除斜杠:
$myArray = json_decode(stripslashes($json), true);