JSON中对象通过“{}”来标识,一个“{}”代表一个对象,如{“pwd”:”123”},对象的值是键值对的形式(key:value)。
“[]”,标识数组,数组内部各个数据之间通过“,”分割,一个数组中可以有很多对象,具体表现形式如下:
[{"pwd":"adminpwd01","userName":"admin01"},{"pwd":"adminpwd02","userName":"admin01"}]
下面讲下采用Java语言实现通过json对象数据的传输
1.首先建立一个servlet,具体核心代码如下所示:
- public void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- response.setContentType("text/html");
- PrintWriter out = response.getWriter();
- String name=request.getParameter("name");
- System.out.println("name="+name);
- UserInfo userInfo=new UserInfo();
- userInfo.setUserName("admin01");
- userInfo.setPwd("adminpwd01");
- UserInfo userInfo2=new UserInfo("admin01", "adminpwd02");
- List<UserInfo> list=new ArrayList<UserInfo>();
- list.add(userInfo);
- list.add(userInfo2);
- JSONArray ja=JSONArray.fromObject(list);
- out.print(ja);
- System.out.println("array--->"+ja);
- }
上面代码的主要功能是为了实现将对象中数据放到list集合中,然后将list集合中的数据封装到JSON数组中,然后通过OUT.PRINT输出。
再上面的代码中我们要引入jar包
再web.xml中配置servlet以及servlet的映射信息。
2.建立一个jsp
引入jquery.js,具体实现代码如下:
- <script type="text/javascript" src="./jquery/js/jquery-2.1.1.js"></script>
- <script type="text/javascript">
- function test(){
- var name=document.getElementById("name").value;
- $.ajax({
- type:"POST", //请求方式
- url:"./s/userServlet", //请求路径
- cache: false,
- data:"name="+name, //传参
- dataType: 'json', //返回值类型
- success:function(msg){
- var me=msg[0];
- var me=msg[0].userName;
- for(i in msg){
- var me1=msg[i];
- }
- },
- error:function(){
- alert("error");
- }
- });
- }
- </script>
- </head>
- <body>
- <form action="" method="post" >
- <input type="text" name="name" id="name" value="nameme">
- <input type="button" name="b" value="测试" οnclick=test()>
- </form>
- </body>
3.启动服务器,我们通过谷歌浏览器来调试下,看下具体的数据情况。
控制台打印的结果如下: