首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >php json_decode在数据库中不工作(pma)

php json_decode在数据库中不工作(pma)
EN

Stack Overflow用户
提问于 2018-12-16 22:48:59
回答 1查看 103关注 0票数 0

我尝试使用PHP的json_decode函数从数据库(Phpmyadmin)(类型设置为text)获取数据,并在页面上设置它,这是我得到的代码:

代码语言:javascript
复制
$belangrijkespecs = $productClass->get('belangrijkeSpecs');
$belangrijkespecs = json_decode($belangrijkespecs);
var_dump($belangrijkespecs);

此代码输出

代码语言:javascript
复制
NULL

当我回显$productClass->get('belangrijkeSpecs')时,它会输出:

代码语言:javascript
复制
{"Beeldschermdiagonaal":"10,1 inch (25,7 cm)","Beeldresolutie":"1920 x 1200","Batterijduur":"Tot 12 uur","Gewicht":"525 g","Opslag":"32 GB"}

当我在一个在线的JSON decode网站上传递这段代码时,我得到了正确的数组(从网站https://3v4l.org/IHKZZ):

代码语言:javascript
复制
array (
  'Beeldschermdiagonaal' => '10,1 inch (25,7 cm)',
  'Beeldresolutie' => '1920 x 1200',
  'Batterijduur' => 'Tot 12 uur',
  'Gewicht' => '525 g',
  'Opslag' => '32 GB',
)

当我用下面的代码尝试json_last_error()时:

代码语言:javascript
复制
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;
            }

它的输出

代码语言:javascript
复制
- Syntax error, malformed JSON

如果我只使用echo json_last_error(),它会输出: 4。

我已经试过了:

代码语言:javascript
复制
$belangrijkespecs = str_replace("/", "", $belangrijkespecs);

$belangrijkespecs = rtrim($belangrijkespecs, "\0");

代码语言:javascript
复制
$belangrijkespecs = stripslashes($belangrijkespecs);

var_dump $productClass->get('belangrijkeSpecs')的输出:

代码语言:javascript
复制
string(240) "{"Beeldschermdiagonaal":"10,1 inch (25,7 cm)","Beeldresolutie":"1920 x 1200","Batterijduur":"Tot 12 uur","Gewicht":"525 g","Opslag":"32 GB"

echo addcslashes($belangrijkespecs,'\0..\37!@\177..\377')的输出为:

代码语言:javascript
复制
{"\;\Beeldschermdiagonaal"\;\:"\;\1\0,\1 inch (\2\5,\7 cm)"\;,"\;\Beeldresolutie"\;\:"\;\1\9\2\0 x \1\2\0\0"\;,"\;\Batterijduur"\;\:"\;\Tot \1\2 uur"\;,"\;\Gewicht"\;\:"\;\5\2\5 g"\;,"\;\Opslag"\;\:"\;\3\2 \G\B"\;}

当我在json_decode之前执行$belangrijkespecs = stripslashes($belangrijkespecs);时,它仍然不起作用……

我也尝试过:$belangrijkespecs = preg_replace('/\\\\/', '', $belangrijkespecs);,但它不起作用。

这个'belangrijkeSpecs‘= http://prntscr.com/lvnsbh的结构

我在互联网上看过,但给出的答案对我没有帮助。

所以我的问题是:如何从json编码的字符串( $productClass-> get ('belangrijkeSpecs') )获取数组

并且我期望从json_decode()返回一个数组;

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53803286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档