当前位置: 代码迷 >> Java Web开发 >> json字符串的获取解决方法
  详细解决方案

json字符串的获取解决方法

热度:174   发布时间:2016-04-16 21:52:21.0
json字符串的获取
这是我的前端代码:
<script type="text/javascript" src="jquery/jquery-2.0.2.js"></script>
<script type="text/javascript">
function login(){
var kidy = {user:$("#username").val(),pass:$("#password").val()};
var jsonTo=(JSON.stringify(kidy));
alert(jsonTo);
$.ajax({
url:"LongServlet",
type:"post",
data:{"myjson":jsonTo},
dataType:"json",
contentType:"application/json;charset=utf-8",
cache:"false"
});

</script>
这是后台的获取
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletExceptionIOException {

response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
String str=request.getParameter("myjson");
System.out.println(str);

}

/*public static UserBean getUser(String key,String jsonString){
UserBean ub=new UserBean();
try{
JSONObject jsonObject=new JSONObject();
jsonObject.get("user");
}catch(Exception e){
e.printStackTrace();
}

}*/
}不管我用什么方法为什么str获取的总是null???????。我的想法是先获得前端传入的数据,再循环的拿出来。
------解决思路----------------------
那你在js里alert出来的也没有数值吗?
------解决思路----------------------
为啥自己将数据转成json格式呢???你写了dataType:"json",  后台获取的数据格式就是json格式的,试试这个:var kidy = "user="+$("#username").val()+"&pwd="+$("#password").val();   data:{"myjson":jsonTo}, 该为data:kidy,    后台就可以获取到数据了。。var  user = request.getParameter("user");  String pwd = request.getParameter("pwd");
------解决思路----------------------
引用:
你把type由post改为get应该就可以了。用post的话,应该是getAttribute试一下,


哥们别乱说,getAttribute是用于获得域对象的,无论是get,post方式只要是得到传递的参数都是使用getParameter();



关于解决这个问题的办法:
首先你看看你的访问路径对不对,可不可以到达后台,如果可以到达后台,那么我有几点需要指出的地方

var kidy = {user:$("#username").val(),pass:$("#password").val()};

$.ajax({
url:"LongServlet",
type:"post",
data:{"myjson":kidy},
dataType:"json",
contentType:"application/json;charset=utf-8",
cache:"false"
});



后台获取:
String myjson=request.getParameter("myjson");
如果你需要转成JSOn,你可以使用JSon-lib包中的方法
JSONArray.fromObject(myjson);
你看看具体的方法,一般来说前台传递过来de json数据后台一般是用相应的类来接收

希望对你有所帮助


  相关解决方案