PHP通过HTTP协议发送JSON数据包与JSP通信

PHP原生提供json_encode()和json_decode()函数用于JSON数据包的打包与解析。这里我们先产注json_encode()函数,这个函数可以将PHP对像或数组打包成JSON数据包个

一、PHP发送数据 1.打包数组 索引数组

code: $ary1 = array (result => ture); $ary2 = array (result => false);

$ary = array($ary1, $ary2); echo json_encode($ary); result: [{"result":ture}, {"result":false}] 关联数组(注意JSON数据包的区别) code: $arr = array (a=>1,b=>2,c=>3,d=>4,e=>5); echo json_encode($arr); result: {"a":1,"b":2,"c":3,"d":4,"e":5} 2.打包对象 code: $user->password = 123456; $user->id = 11111111; result:   {"password":"123456", "id":"11111111"} 二、JSP接收数据 用JSP接收数据仍然是通过业务层JAVA代码实现的。这里可以引入第三方实现的jar来解析JSON数据包。 笔者这里用的是 json-lib-2.2.2-jdk15.jar; 此外还需要几个jar支持 ezmorph.jar; commons-beanutils-1.7.jar; commons-collections.jar; commons-lang.jar;

该jar可以提供JSONObject和JSONArray两个class,其中JSONObject可以解析由PHP关联数组生成的json字符串,而JSONArray可以解析由PHP索引数组生成的json字符串。

两个类的实例均可以调用成员方法fromObject(Object)来得到。

code:

JSONArray jsonAry = JSONArray.fromObject(result); ListIterator<net.sf.json.JSONObject> li = jsonAry.listIterator(); while (li.hasNext()) { net.sf.json.JSONObject jo = (net.sf.json.JSONObject)li.next(); System.out.println(jo.get("o_stutas")); }

经验分享 程序员 微信小程序 职场和发展