标签:java javascript 字符串
JSON结构有两种结构:
json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构。
1、对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。
2、数组:数组在js中是中括号“[]”括起来的内容,数据结构为 ["java","javascript","vb",...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。
经过对象、数组2种结构就可以组合成复杂的数据结构了。
不同的Json可以使用不同的处理方法以简化步骤,以下举例说明各类处理方法。
首先添加json-lib-2.4-jdk15.jar包,同时添加其他五个所需的包:
commons-beanutils-1.8.0.jar
commons-collections-3.1.jar
commons-lang-2.5.jar
commons-logging-1.1.1.jar
ezmorph-1.0.6.jar
在不知道json数据中键的情况下可将json数据转化为map数据进行处理:
var requestjson = {
"key1" : ["data1","data2","data3","data4"],
"key2" :["data1","data2","data3","data4"],
"key2" :["data1","data2","data3","data4"],
....
}
var jsondata = {
"jsondata" : requestjson
}
前台ajax代码
$.ajax({ url : "AjaxServlet", type : "POST", data : jsondata, success : function(responseText, textStatus){ $("#resText").text(responseText); }, error : function(){ alert("error"); } });
以下函数列举了一个从前台通过ajax传送到后台servlet的json数据处理方法,由于后台接受数据后不知道确切的key值,所以前台发送前将requestjson数据封装成一个键值对的数据。
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String data = request.getParameter("jsondata"); //解析json数据 JSONObject jsonData = JSONObject.fromObject(data); Map<String, Object> map = jsonData; response.setContentType("text/html"); PrintWriter writer = response.getWriter(); for (Entry<String, Object> entry : map.entrySet()) { writer.println(entry.getKey()+"="+entry.getValue()); } }
ps:以此下种json格式直接传入后台,通过request.getParameterNames();后得到的names值为key1[],key2[],key3[]...而不是key1,key2,key3...。若key1后的值为字符串,则获得的值为key1.
var requestjson = {
"key1" : ["data1","data2","data3","data4"],
"key2" :["data1","data2","data3","data4"],
"key2" :["data1","data2","data3","data4"],
....
}
标签:java javascript 字符串
原文地址:http://11697581.blog.51cto.com/11687581/1825756