+ -
当前位置:首页 → 问答吧 → 关于json的学习

关于json的学习

时间:2009-12-30

来源:互联网

本帖最后由 13681457640 于 2009-12-30 15:05 编辑

<meta http-equiv="content-type" content="text/html;charset=gb2312">
<style type="text/css">
body {
         background-color: #fff;
         margin: 40px;
         font-family: Lucida Grande, Verdana, Sans-serif;
         font-size: 14px;
         color: #4F5155;
}
code {
         font-family: Monaco, Verdana, Sans-serif;
         font-size: 12px;
         background-color: #f9f9f9;
         border: 1px solid #D0D0D0;
         color: #002166;
         display: block;
         margin: 14px 0 14px 0;
         padding: 12px 10px 12px 10px;
}
</style>
<p>json实例</p>
<p>1.json是一种数据存储传送机制,它和xml的工作很相近,但是在对js传递数据的时候会更好一些,它能够被js直接读取赋值,在不同语言中赋值省去了很多麻烦</p>
<pre><code>
        //注意json只能传送utf-8编码,如遇gbk编码(中文)必须转换.
        $phparry = array(
            'name' => iconv('gbk', 'utf-8', '我的名字'),
            'nick' => iconv('gbk', 'utf-8', '这是昵称'),
            'contact' => array(
                'email' => 'shenkong at qq dot com',
                'website' => 'http://www.chenyixin.com',
            )
        );
        //用php内置函数转换
        $json_string = json_encode($phparry);
        //输出
        echo $json_string;
</code></pre>
<p>下面是它的输出结果,其实就是一个按指定规则排列的字符串,不过重点看一下中文部分,每一个汉字被对应的编码所取代</p>
<p>{"name":"\u6211\u7684\u540d\u5b57","nick":"\u8fd9\u662f\u6635\u79f0","contact":{"email":"shenkong at qq dot com","website":"http:\/\/www.chenyixin.com"}}</p>
<pre><code>
        //此处的/是为了转义";
        $jsonstr = "{\"name\":\"\u6211\u7684\u540d\u5b57\",\"nick\":\"\u8fd9\u662f\u6635\u79f0\",\"contact\":{\"email\":\"shenkong at qq dot com\",\"website\":\"http:\/\/www.chenyixin.com\"}}";
        //用php内置函数转换
        $phparray = json_decode($jsonstr);
        //由于被转换过来的中文都会变成utf-8,所以我们要想正常访问,就需要把它转换成gbk,(注意如果你的编码就是utf-8,那么可以跳过此部)
        $phparray->name = iconv('utf-8', 'gbk', $phparray->name);
        $phparray->nick = iconv('utf-8', 'gbk', $phparray->nick);
        //输出
        print_r($phparray);

</code></pre>
stdClass Object
(
    [name] => 我的名字
    [nick] => 这是昵称
    [contact] => stdClass Object
        (
            [email] => shenkong at qq dot com
            [website] => http://www.chenyixin.com
        )

)
<p>2.json在javascript中的用法</p>
<p>注意json的基本格式:{}表示一组数据(就相当于php里的一个数组),{"key1":"value1", "key2":"value2"},这就是一键一值的表示方式,它也允许一个组里套入另一个组,就和php里的一维二维数组一样</p>
<pre><code>
        //这里是json在javascript中的简单用法
        var arr = {"name":"\u6211\u7684\u540d\u5b57","nick":"\u8fd9\u662f\u6635\u79f0","contact":{"email":"shenkong at qq dot com","website":"http:\/\/www.chenyixin.com"}};
        document.write(arr.name);
        document.write(arr.nick);
</code></pre>
<script type = "text/javascript">
        var arr = {"name":"\u6211\u7684\u540d\u5b57","nick":"\u8fd9\u662f\u6635\u79f0","contact":{"email":"shenkong at qq dot com","website":"http:\/\/www.chenyixin.com"}};
        document.write(arr.name);
        document.write(arr.nick);
</script>
stu_json.php (3.06 KB)
示例
下载次数: 13
2009-12-30 15:02

作者: 13681457640   发布时间: 2009-12-30

作者: qingxuan812   发布时间: 2009-12-30

建议还是看看ecshop的json.inc.php类.

作者: spser   发布时间: 2009-12-30

看看

作者: 斯人   发布时间: 2009-12-30