PHP中生成json信息的方法

2018-06-14编程教程
91

<?php

//php中生成json信息
//json_encode(数组/对象)

$color = array('red','blue','green'); //【索引数组】
echo json_encode($color),"<br />"; //["red","blue","green"]

$animal = array('east'=>'tiger','north'=>'wolf','south'=>'monkey'); //【关联数组】
echo json_encode($animal),"<br />";//{"east":"tiger","north":"wolf","south":"monkey"}

//【索引关联数组】
$animal2 = array('east'=>'tiger','north'=>'wolf','duck','south'=>'monkey');
echo json_encode($animal2),"<br />";//{"east":"tiger","north":"wolf","0":"duck","south":"monkey"}

//[{},{},{}]
//{"weatherinfo":{"city":"北京","cityid":"101010100","temp":"9","WD":"南风","WS":"2级","SD":"26%","WSE":"2","time":"10:20","isRadar":"1","Radar":"JC_RADAR_AZ9010_JB","njd":"暂无实况","qy":"1014"}}
//{名称:[],名称:[],名称:[]}


//【对象生成json信息】
class Person{
    public $addr = "beijing";
    public $height = 170;
    public function study(){
        echo "study php";
    }
}
$tom = new Person();
//只是对象的属性给生成json信息
echo json_encode($tom);//{"addr":"beijing","height":170}

1.json
json_encode(数组/对象)------------>生成json信息,
 
json_decode(json信息); 反编码json信息
 
对json字符串信息进行反编码,变为当前语言可以识别的信息。
 
2. javascript接收处理json信息
通过eval()把接收的json字符串变成真实的对象信息
 
代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
    <head>
        <title>新建网页</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta name="description" content="" />
        <meta name="keywords" content="" />

        <script type="text/javascript">
        function showweather(){
            //利用ajax获得天气预报信息
            //利用javascript+dom处理并显示天气信息
            var xhr = new XMLHttpRequest();
            xhr.onreadystatechange = function(){
                if(xhr.readyState==4){
                    //alert(xhr.responseText);
                    console.log(typeof xhr.responseText);//string
                    //要把接收的“字符串”变为“对象”
                    //'{"addr":"\u5317\u4eac","temp":"9-22","wind":"north4-5"}'
                    eval("var info="+xhr.responseText);

                    var str = "地址:"+info.addr+";温度:"+info.temp+";风向:"+info.wind;
                    document.getElementById('result').innerHTML = str;
                }
            }
            xhr.open('get','./03.php');
            xhr.send(null);
        }
        window.onload = function(){
            showweather();
        }
        
//        //s字符串变为对象obj
//         var s = "{name:'tom',height:170}";
//        //"var obj="+"{name:'tom',height:170}"====>"var obj={name:'tom',height:170}"
//        //console.log("var obj="+s);  
//        eval("var obj="+s);
//        console.log(obj);//Object { name="tom", height=170}

        </script>

        <style type="text/css">
        </style>
    </head>
    <body>
        <h2>获得天气预报接口信息</h2>
        <div id="result"></div>
    </body>
</html>

The End

相关推荐

layui根据百度地图经纬度在弹出层中显示位置
首先你需要引入百度地图的js script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0ak=你的ak"/script ak ,注意是要浏览器端的ak,这个直接到百度开发者平台申请。 引入layui,这个大家可以到layui官网看看怎么引入layer, 注意:这里要提...
2025-01-09 编程教程
240

C#之socket编程
编程需要恒心和毅力,最主要的是要有信心,循序渐进的完成任务。 一、socket类用于网络通信 命名空间System.Net.Sockets,完整的类引用System.Net.Sockets.Socket。Socket类支持各种网络协议。 二、简单的控制台程序 using System;using System.Collections....
2023-03-07 编程教程
114

百度UEditor编辑器如何禁止过滤div等网页html标签
将设计排版好的页面html代码上传到数据库,再读取出来的时候发现所有的div都被替换成了p标签。 解决方法: 首先在ueditor.all.js文件内搜索allowDivTransToP,找到如下的代码,将true设置为false me.setOpt({ 'allowDivTransToP':false, 'disabledTableInTable'...
2022-11-23 编程教程
495

Ajax中文传值出现乱码的解决办法
Ajax技术的核心为Javascript,而javascript使用的是UTF-8编码,因此在页面采用GBK或者其他编码,同时没有进行编码转换时,就会出现中文乱码的问题。 以下是分别使用GET和POST方式传值,并且页面采用GBK和UTF-8编码在IE和FF下的不同测试结果和出现乱码时的解...
2022-11-19 编程教程
364

layui Table 设置title 字体加粗
在layui.css中加样式 : .layui-table th{font-weight: bold;} ,或者直接加在网页中即可。 style .layui-table th{ font-weight: bold;} /stylebodytable id="demo" lay-filter="demo" class="layui-hide"/table/body...
2022-10-17 编程教程
200

PHP错误Warning: Cannot modify header information - headers alr
今天在用php进行图片保存输出时候,图片一直显示错误,后面用调试模式下提示:Warning: Cannot modify header information - headers already sent by... 看了一些网上的方法也没解决,最后在php.ini配置output_buffering默认为4096就没有遇到这个错误了: o...
2022-05-18 编程教程
69