首頁 >後端開發 >php教程 >怎么会有错呢,简单的json读取

怎么会有错呢,简单的json读取

WBOY
WBOY原創
2016-06-23 13:47:201014瀏覽


$pingluninfo =  {
    "title":"123",
    "url":"http://localhost/?p=9",
    "ttime":1401327899094,
    "sourceid":"9",
    "parentid":"0",
    "categoryid":"",
    "ownerid":"",
    "metadata":"",
    "comments":[
        {
            "cmtid":"358",
            "ctime":1401327899094,
            "content":"2013年8月1日18:36:29 O(∩_∩)O~",
            "replyid":"0",
            "user":{
                "userid":"1",
                "nickname":"admin",
                "usericon":"",
                "userurl":"",
                "usermetadata":{
                    "area": "北京市",
                    "gender": "1",
                    "kk": "",
                    "level": 1
                }
            },
            "ip":"127.0.0.1",
            "useragent":"Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0",
            "channeltype":"1",
            "from":"",
            "spcount":"",
            "opcount":"",
            "attachment":[
                {
                    "type":1,
                    "desc":"",
                    "url":"http://img.sohu.itc/xxxx"
                }
            ]
        }
    ]
}
EOT;

$pingluninfo = json_decode($pingluninfo, true);
if(!$pingluninfo) {
die('错误的数据格式');
}
?>
总是输出 错误的数据格式


回复讨论(解决方案)

看着json 不对劲。
中文在json_encode 后不是这样的吧

<?php $pingluninfo = <<<EOT{    "title":"123",    "url":"http://localhost/?p=9",    "ttime":1401327899094,    "sourceid":"9",    "parentid":"0",    "categoryid":"",    "ownerid":"",    "metadata":"",    "comments":[        {            "cmtid":"358",            "ctime":1401327899094,            "content":"2013年8月1日18:36:29 O(∩_∩)O~",            "replyid":"0",            "user":{                "userid":"1",                "nickname":"admin",                "usericon":"",                "userurl":"",                "usermetadata":{                    "area": "北京市",                    "gender": "1",                    "kk": "",                    "level": 1                }            },            "ip":"127.0.0.1",            "useragent":"Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0",            "channeltype":"1",            "from":"",            "spcount":"",            "opcount":"",            "attachment":[                {                    "type":1,                    "desc":"",                    "url":"http://img.sohu.itc/xxxx"                }            ]        }    ]}EOT;$pingluninfo = json_decode($pingluninfo, true);if(!$pingluninfo) {    die('错误的数据格式');}echo "<pre class="brush:php;toolbar:false">";print_r($pingluninfo);echo "
";

输出:
Array(    [title] => 123    [url] => http://localhost/?p=9    [ttime] => 1401327899094    [sourceid] => 9    [parentid] => 0    [categoryid] =>     [ownerid] =>     [metadata] =>     [comments] => Array        (            [0] => Array                (                    [cmtid] => 358                    [ctime] => 1401327899094                    [content] => 2013年8月1日18:36:29 O(∩_∩)O~                    [replyid] => 0                    [user] => Array                        (                            [userid] => 1                            [nickname] => admin                            [usericon] =>                             [userurl] =>                             [usermetadata] => Array                                (                                    [area] => 北京市                                    [gender] => 1                                    [kk] =>                                     [level] => 1                                )                        )                    [ip] => 127.0.0.1                    [useragent] => Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0                    [channeltype] => 1                    [from] =>                     [spcount] =>                     [opcount] =>                     [attachment] => Array                        (                            [0] => Array                                (                                    [type] => 1                                    [desc] =>                                     [url] => http://img.sohu.itc/xxxx                                )                        )                )        ))


测试无误

请把引号补齐!
"ttime":1401327899094, 应为 "ttime":"1401327899094",
其他类同

echo '<meta http-equiv="content-type" content="text/html;charset=utf-8">';$pingluninfo = <<<EOT{    "title":"123",    "url":"http://localhost/?p=9",    "ttime":1401327899094,    "sourceid":"9",    "parentid":"0",    "categoryid":"",    "ownerid":"",    "metadata":"",    "comments":[        {            "cmtid":"358",            "ctime":1401327899094,            "content":"2013年8月1日18:36:29 O(∩_∩)O~",            "replyid":"0",            "user":{                "userid":"1",                "nickname":"admin",                "usericon":"",                "userurl":"",                "usermetadata":{                    "area": "北京市",                    "gender": "1",                    "kk": "",                    "level": 1                }            },            "ip":"127.0.0.1",            "useragent":"Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0",            "channeltype":"1",            "from":"",            "spcount":"",            "opcount":"",            "attachment":[                {                    "type":1,                    "desc":"",                    "url":"http://img.sohu.itc/xxxx"                }            ]        }    ]}EOT;$pingluninfo = json_decode($pingluninfo, true);if(!$pingluninfo) {    die('错误的数据格式');}else{    print_r($pingluninfo);}

测试过,很正常。
(    [title] => 123    [url] => http://localhost/?p=9    [ttime] => 1401327899094    [sourceid] => 9    [parentid] => 0    [categoryid] =>     [ownerid] =>     [metadata] =>     [comments] => Array        (            [0] => Array                (                    [cmtid] => 358                    [ctime] => 1401327899094                    [content] => 2013年8月1日18:36:29 O(∩_∩)O~                    [replyid] => 0                    [user] => Array                        (                            [userid] => 1                            [nickname] => admin                            [usericon] =>                             [userurl] =>                             [usermetadata] => Array                                (                                    [area] => 北京市                                    [gender] => 1                                    [kk] =>                                     [level] => 1                                )                        )                    [ip] => 127.0.0.1                    [useragent] => Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0                    [channeltype] => 1                    [from] =>                     [spcount] =>                     [opcount] =>                     [attachment] => Array                        (                            [0] => Array                                (                                    [type] => 1                                    [desc] =>                                     [url] => http://img.sohu.itc/xxxx                                )                        )                )        ))

你那是新版的吧!估计 数值型 超出最大了

你那是新版的吧!估计 数值型 超出最大了




新版的?怎么讲?

我把上面说测试正常的代码复制到我那里,就是提示数据错误。
看来真是环境问题啊

我把上面说测试正常的代码复制到我那里,就是提示数据错误。
看来真是环境问题啊

echo '<meta http-equiv="content-type" content="text/html;charset=utf-8">';$pingluninfo = <<<EOT{    "title":"123",    "url":"http://localhost/?p=9",    "ttime":1401327899094,    "sourceid":"9",    "parentid":"0",    "categoryid":"",    "ownerid":"",    "metadata":"",    "comments":[        {            "cmtid":"358",            "ctime":1401327899094,            "content":"2013年8月1日18:36:29 O(∩_∩)O~",            "replyid":"0",            "user":{                "userid":"1",                "nickname":"admin",                "usericon":"",                "userurl":"",                "usermetadata":{                    "area": "北京市",                    "gender": "1",                    "kk": "",                    "level": 1                }            },            "ip":"127.0.0.1",            "useragent":"Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0",            "channeltype":"1",            "from":"",            "spcount":"",            "opcount":"",            "attachment":[                {                    "type":1,                    "desc":"",                    "url":"http://img.sohu.itc/xxxx"                }            ]        }    ]}EOT;$pingluninfo = json_decode($pingluninfo, true);if(!$pingluninfo) {    die('错误的数据格式');}else{    print_r($pingluninfo);}

测试过,很正常。
(    [title] => 123    [url] => http://localhost/?p=9    [ttime] => 1401327899094    [sourceid] => 9    [parentid] => 0    [categoryid] =>     [ownerid] =>     [metadata] =>     [comments] => Array        (            [0] => Array                (                    [cmtid] => 358                    [ctime] => 1401327899094                    [content] => 2013年8月1日18:36:29 O(∩_∩)O~                    [replyid] => 0                    [user] => Array                        (                            [userid] => 1                            [nickname] => admin                            [usericon] =>                             [userurl] =>                             [usermetadata] => Array                                (                                    [area] => 北京市                                    [gender] => 1                                    [kk] =>                                     [level] => 1                                )                        )                    [ip] => 127.0.0.1                    [useragent] => Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0                    [channeltype] => 1                    [from] =>                     [spcount] =>                     [opcount] =>                     [attachment] => Array                        (                            [0] => Array                                (                                    [type] => 1                                    [desc] =>                                     [url] => http://img.sohu.itc/xxxx                                )                        )                )        ))

我把上面说测试正常的代码复制到我那里,就是提示数据错误。
看来真是环境问题啊

<?php $pingluninfo = <<<EOT{    "title":"123",    "url":"http://localhost/?p=9",    "ttime":1401327899094,    "sourceid":"9",    "parentid":"0",    "categoryid":"",    "ownerid":"",    "metadata":"",    "comments":[        {            "cmtid":"358",            "ctime":1401327899094,            "content":"2013年8月1日18:36:29 O(∩_∩)O~",            "replyid":"0",            "user":{                "userid":"1",                "nickname":"admin",                "usericon":"",                "userurl":"",                "usermetadata":{                    "area": "北京市",                    "gender": "1",                    "kk": "",                    "level": 1                }            },            "ip":"127.0.0.1",            "useragent":"Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0",            "channeltype":"1",            "from":"",            "spcount":"",            "opcount":"",            "attachment":[                {                    "type":1,                    "desc":"",                    "url":"http://img.sohu.itc/xxxx"                }            ]        }    ]}EOT;$pingluninfo = json_decode($pingluninfo, true);if(!$pingluninfo) {    die('错误的数据格式');}echo "<pre class="brush:php;toolbar:false">";print_r($pingluninfo);echo "
";

输出:
Array(    [title] => 123    [url] => http://localhost/?p=9    [ttime] => 1401327899094    [sourceid] => 9    [parentid] => 0    [categoryid] =>     [ownerid] =>     [metadata] =>     [comments] => Array        (            [0] => Array                (                    [cmtid] => 358                    [ctime] => 1401327899094                    [content] => 2013年8月1日18:36:29 O(∩_∩)O~                    [replyid] => 0                    [user] => Array                        (                            [userid] => 1                            [nickname] => admin                            [usericon] =>                             [userurl] =>                             [usermetadata] => Array                                (                                    [area] => 北京市                                    [gender] => 1                                    [kk] =>                                     [level] => 1                                )                        )                    [ip] => 127.0.0.1                    [useragent] => Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0                    [channeltype] => 1                    [from] =>                     [spcount] =>                     [opcount] =>                     [attachment] => Array                        (                            [0] => Array                                (                                    [type] => 1                                    [desc] =>                                     [url] => http://img.sohu.itc/xxxx                                )                        )                )        ))


测试无误

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn