java json传值过程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java json传值过程相关的知识,希望对你有一定的参考价值。

Java 问题
利用servlet获取jsp表单传过来的值(用户名,密码),然后把获得的值封装成json对象,返回到一张jsp页面显示
求全代码servlet和jsp都写上,解决后还有加分
在页面上显示的要是键值对的形式

package test;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONObject;

public class ServletTest extends HttpServlet

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
doPost(req,resp);


@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
req.setCharacterEncoding("utf-8");
String name=req.getParameter("name");
String pwd=req.getParameter("pwd");

JSONObject json=new JSONObject();
json.put("name", name);
json.put("pwd", pwd);

PrintWriter out=resp.getWriter();
out.write(json.toString());
out.flush();
out.close();


追问

PrintWriter out=resp.getWriter();报错
我要在页面上显示json格式,方便我抓取其中的数据,不知道我说的清楚不?在页面上显示的效果是:

"username": "xxxxxx",
"password": "00000",
"agname": "xxxxx";

参考技术A jsp页面:

javascript代码
var clientTel = $("#clientTel").val();
var activityId = $("#activityId").val();
var url = "/arweb/reserve/saveCode.action?"+Math.ceil(Math.random()*10)+"&clientTel="+clientTel+"&activityId="+activityId;
$.getJSON(url,function(jsonStr)
$.each(jsonStr.data, function(i, item)
if(jsonStr.data.length > 1)
$("#point").html(jsonStr.data[0]);
$("#randomCode").val(jsonStr.data[1]);
else
$("#randomCode").val(jsonStr.data[0]);

);
);
var clientTel = $("#clientTel").val();
var activityId = $("#activityId").val();
var url = "/arweb/reserve/saveCode.action?"+Math.ceil(Math.random()*10)+"&clientTel="+clientTel+"&activityId="+activityId;
$.getJSON(url,function(jsonStr)
$.each(jsonStr.data, function(i, item)
if(jsonStr.data.length > 1)
$("#point").html(jsonStr.data[0]);
$("#randomCode").val(jsonStr.data[1]);
else
$("#randomCode").val(jsonStr.data[0]);

);
);

action类:

Java代码
@RequestMapping("/reserve/saveCode")
public @ResponseBody JqueryJsonForm saveCode(HttpServletRequest request) throws Exception
List list = new ArrayList();
String point = "本活动您已经预约!";
list.add(point);
int randomCode = (int)(Math.random()*1000000);
list.add(randomCode);

JqueryJsonForm jqueryJson = new JqueryJsonForm();
jqueryJson.setSuccess(true);
jqueryJson.setData(list);
return jqueryJson;

@RequestMapping("/reserve/saveCode")
public @ResponseBody JqueryJsonForm saveCode(HttpServletRequest request) throws Exception
List list = new ArrayList();
String point = "本活动您已经预约!";
list.add(point);
int randomCode = (int)(Math.random()*1000000);
list.add(randomCode);

JqueryJsonForm jqueryJson = new JqueryJsonForm();
jqueryJson.setSuccess(true);
jqueryJson.setData(list);
return jqueryJson;


以这种方式传参,在jsp页面接收的时候,是以数组方式保存的,所以取值的时候要根据下标来取值。
参考技术B 你是新手嘛追问

是的,

json传值

参考技术A JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包。
本文主要是对JS操作JSON的要领做下总结。
在JSON中,有两种结构:对象和数组。
1. 一个对象以“”(左括号)开始,“”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间运用 “,”(逗号)分隔。 名称用引号括起来;值如果是字符串则必须用括号,数值型则不须要。例如:
var o="xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20";
2. 数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间运用 “,”(逗号)分隔。
例如:
var jsonranklist=["xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20","xlid":"zd","xldigitid":123456,"topscore":1500,"topplaytime":"2009-11-20"];
在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。例如:
JSON字符串:
var str1 = ' "name": "cxh", "sex": "man" ';
JSON对象:
var str2 = "name": "cxh", "sex": "man" ;
一、JSON字符串转换为JSON对象
要运用上面的str1,必须运用下面的要领先转化为JSON对象:
//由JSON字符串转换为JSON对象
var obj = eval('(' + str + ')');
或者
var obj = str.parseJSON(); //由JSON字符串转换为JSON对象
或者
var obj = JSON.parse(str); //由JSON字符串转换为JSON对象
然后,就可以这样读取:
Alert(obj.name);
Alert(obj.sex);
特别留心:如果obj本来就是一个JSON对象,那么运用 eval()函数转换后(哪怕是多次转换)还是JSON对象,但是运用 parseJSON()函数处理后会有疑问(抛出语法异常)。
二、可以运用 toJSONString()或者全局要领 JSON.stringify()将JSON对象转化为JSON字符串。
例如:
var last=obj.toJSONString(); //将JSON对象转化为JSON字符
或者
var last=JSON.stringify(obj); //将JSON对象转化为JSON字符
alert(last);追问

我用的是EXT  怎么才能把值传到后台呢?

 var str1 = ' "name": "cxh", "psd": "man" ';

按照你的方法谢了 这边用这个json的字符形式,但是直接JS 就抛出异常了 

以上是关于java json传值过程的主要内容,如果未能解决你的问题,请参考以下文章

json传值

关于json传值大小写的“坑”

(转)java 中的 传值 与 传址

java服务端json结果集传值给前端的数据输出格式

VBA学习笔记之过程

Java方法 传值方式