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

来源:互联网 发布:淘宝打折app哪个好 编辑:程序博客网 时间:2024/05/22 10:45

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"));
       }

 

原创粉丝点击