base64 json_解码问题-php
从mysql获取BLOBbase64 json_解码问题-php,php,mysql,json,Php,Mysql,Json,从mysql获取BLOB $sql = "SELECT data as datajson FROM tablename"; $res=$obj->_executeQuery($sql); $res=$obj->getAll($res); $blobdata = $res[0]['datajson']; BLOB中的json数据如下所示 [{"name":"propose","value":"Propose~sample"}, {"name":"expenseamount","v
$sql = "SELECT data as datajson FROM tablename";
$res=$obj->_executeQuery($sql);
$res=$obj->getAll($res);
$blobdata = $res[0]['datajson'];
BLOB中的json数据如下所示
[{"name":"propose","value":"Propose~sample"},
{"name":"expenseamount","value":"Expense Amount~15246"},
{"name":"paymenttype","value":"Payment Type~ Cash"},
{"name":"img0","value":"/9j/4AAQSkZHIjks........61A/3qBo/9k="},
{"name":"img1","value":"NO"}]
现在
这对是包含在我的BLOB中的一个base 64字符串。当我解码时,json_($blobdata)代码>我得到null
确切的base64字符串可以在中找到
我添加了json_last_error()代码>在我的代码中
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo ' - No errors';
break;
case JSON_ERROR_DEPTH:
echo ' - Maximum stack depth exceeded';
break;
case JSON_ERROR_STATE_MISMATCH:
echo ' - Underflow or the modes mismatch';
break;
case JSON_ERROR_CTRL_CHAR:
echo ' - Unexpected control character found';
break;
case JSON_ERROR_SYNTAX:
echo ' - Syntax error, malformed JSON';
break;
case JSON_ERROR_UTF8:
echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';
break;
default:
echo ' - Unknown error';
break;
}
返回-语法错误、格式错误的JSON和
json_解码不起作用,因为这不是一个正确的json
我想要img0和img1以外的详细信息
一,。现在,我如何在json_解码之前删除最后两对(img0,img1),使其成为有效的json
二,。或者如何将base64字符串转换为正确的json
更新
这就是BLOB数据在mysql中的存储方式
foreach($_REQUEST as $key=>$value)
{
$raw_data[] = array('name' => $key, 'value' => $value);
}
$json = json_encode($raw_data);
$sql="INSERT INTO tablename (data) VALUES ('$json')";
请共享一部分代码,将您的图像转换为base64并保存为blobIdeally。如果我们能够看到导致问题的完整JSON字符串,找出它导致问题的原因,这将非常有用。@yergo我已经给出了更新。@Jon,基本上,我对包含base64字符串的img0和img1有一个问题您为什么要对base64编码的字符串进行解码json_decode
用于解码json编码的字符串,而不是base64编码的字符串。
foreach($_REQUEST as $key=>$value)
{
$raw_data[] = array('name' => $key, 'value' => $value);
}
$json = json_encode($raw_data);
$sql="INSERT INTO tablename (data) VALUES ('$json')";