用getJSON获取数据,返回500错误,本地测试正常,服务器环境2003 iis6 vs2005,是个什么情况?求大神

用getJSON获取数据,返回500错误,本地测试正常,服务器环境2003 iis6 vs2005,是个什么情况?求大神,第1张

500 错误应该是你get返回JSON 的时候没给GET 开权限吧

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应用程序。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6896544.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-29
下一篇 2023-03-29

发表评论

登录后才能评论

评论列表(0条)

保存