500错误一般是后台代码错误 在.NET MVC 里面 GET json 需要给JSON 额外加一个参数
从json数组中得到java数组,可以对该数组进行转化,如将JSONArray转化为String型、Long型、Double型、Integer型、Date型等等。分别采用jsonArray下的getString(index)、getLong(index)、getDouble(index)、getInt(index)等方法。
同样,如果要获取java数组中的元素,只需要遍历该数组。
Java代码 收藏代码
/**
* 将json数组转化为Long型
* @param str
* @return
*/
public static Long[] getJsonToLongArray(String str) {
JSONArray jsonArray = JSONArray.fromObject(str)
Long[] arr=new Long[jsonArray.size()]
for(int i=0i<jsonArray.size()i++){
arr[i]=jsonArray.getLong(i)
System.out.println(arr[i])
}
return arr
}
/**
* 将json数组转化为String型
* @param str
* @return
*/
public static String[] getJsonToStringArray(String str) {
JSONArray jsonArray = JSONArray.fromObject(str)
String[] arr=new String[jsonArray.size()]
for(int i=0i<jsonArray.size()i++){
arr[i]=jsonArray.getString(i)
System.out.println(arr[i])
}
return arr
}
/**
* 将json数组转化为Double型
* @param str
* @return
*/
public static Double[] getJsonToDoubleArray(String str) {
JSONArray jsonArray = JSONArray.fromObject(str)
Double[] arr=new Double[jsonArray.size()]
for(int i=0i<jsonArray.size()i++){
arr[i]=jsonArray.getDouble(i)
}
return arr
}
/**
* 将json数组转化为Date型
* @param str
* @return
*/
public static Date[] getJsonToDateArray(String jsonString) {
JSONArray jsonArray = JSONArray.fromObject(jsonString)
Date[] dateArray = new Date[jsonArray.size()]
String dateString
Date date
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd")
for (int i = 0i <jsonArray.size()i++) {
dateString = jsonArray.getString(i)
try {
date=sdf.parse(dateString)
dateArray[i] = date
} catch (Exception e) {
e.printStackTrace()
}
}
return dateArray
}
public static void main(String[] args) {
JSONArray jsonLongs = new JSONArray()
jsonLongs.add(0, "111")
jsonLongs.add(1, "222.25")
jsonLongs.add(2, new Long(333))
jsonLongs.add(3, 444)
Long[] log=getJsonToLongArray(jsonLongs.toString())
for(int i=0i<log.lengthi++){
System.out.println(log[i])
}
JSONArray jsonStrs = new JSONArray()
jsonStrs.add(0, "2011-01-01")
jsonStrs.add(1, "2011-01-03")
jsonStrs.add(2, "2011-01-04 11:11:11")
Date[] d=getJsonToDateArray(jsonStrs.toString())
for(int i=0i<d.lengthi++){
System.out.println(d[i])
}
}
/*结果如下:
* 111
* 222
* 333
* 444
*
* Sat Jan 01 00:00:00 CST 2011
* Mon Jan 03 00:00:00 CST 2011
* Tue Jan 04 00:00:00 CST 2011
*/
第一步:在你的Action中创建一个json数据
public class AjaxAction extends ActionSupport{ /** * */private static final long serialVersionUID = 1Lprivate String resultpublic String getResult() { return result} public void setResult(String result) { this.result = result}public String getjson() { JSONObject json = new JSONObject()json.put("name","张三")json.put("password","123456")result=json.toString()return SUCCESS}
第二步:编写struts.xml文件中的内容
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd"><struts><!-- 设置开发者模式 修改action中的名字可以不用重启服务器 --><constant name="struts.devMode" value="true"></constant><!-- 只有在后缀中有(.do)的才经过,这个value可以自己修改 --><constant name="struts.action.extension" value="do"></constant><!-- 开启动态方法调用 --><constant name="struts.enable.DynamicMethodInvocation" value="true"/><package name="default" extends="json-default" namespace=""><action name="ajax" class="com.action.AjaxAction" method="getjson"><result name="success">/ajaxjson.jsp</result><result type="json" ><!-- 这里指定将被Struts2序列化的属性,该属性在action中必须有对应的getter方法 --><param name="root">result</param></result></action></package></struts>
凡是使用Struts2序列化对象到JSON的action,所在的package必须继承自json-default,注意,这里唯一的result,没有指定name属性。parm设置name=“root”表示局部刷新,返回根目录页面.
第三步:首先先了解Ajax的原理:这是用jQuery做的,需要引 js
function testCheck(num){ $.ajax({ type:"post",//提交方式url:"TestCheckServlet",//提交地址async:true,//是否异步请求dataType:"html",//返回类型data:{"num":num},//传过去的值success:function(data,textStatus){//成功执行的方法var json=eval("("+data+")")//将传过来的数据转json,也可以传过来就是json数据免得麻烦转 alert(json.name)}, error:function(){//失败执行的方法alert("error")} }) }
思路:
1、在input的onblur事件中进行验证。
2、通过ajax发送手机号给后台Servlet。
3、Servlet对手机号进行数据库查询,返回是否存在的文字给ajax。
4、ajax收到返回文字后,显示到标签上。
总结:Ajax能够让浏览器和服务器进行交互,并且在不刷新页面的情况下对网页内容进行更新,大大提高了用户体验,通过Ajax技术能够构建交互性极强的Web应用程序。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)