Jquery遍历json的两种数据结构

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

没有落叶的秋-博客:/s/blog_8fbeeb59010153d3.html Jquery遍历json的两种数据结构
简介
什么是JSON?
JSON 即JavaScript Object Natation(Java对象表示法),它是一种轻量级的数据交换格式,非常适合于服务器与JavaScript 的交互。

简而言之,JSON就是JavaScript交换数据的一种格式。

例子如下:{"username":"coolcooldool","password":"1230","usertype":"superadmin" }
{"list":[{"password":"1230","username":"coolcooldool"},{"password":" thisis2","username":"okokok"}]}
第二种是有数组的情况,我也不用文字表述JSON到底是怎么构成的了,相信长眼睛的人都看懂了。

为什么使用JSON而不是XML?
尽管有许多宣传关于 XML 如何拥有跨平台,跨语言的优势,然而,除非应用于 Web Services,否则,在普通的 Web 应用中,开发者经常为 XML 的解析伤透了脑筋,无论是服务器端生成或处理 XML,还是客户端用 JavaScript 解析 XML,都常常导致复杂的代码,极低的开发效率。

实际上,对于大多数 Web 应用来说,他们根本不需要复杂的 XML 来传输数据,XML 的扩展性很少具有优势,许多 AJAX 应用甚至直接返回 HTML 片段来构建动态 Web 页面。

和返回 XML 并解析它相比,返回 HTML 片段大大降低了系统的复杂性,但同时缺少了一定的灵活性。

如何使用?
当然最直接的方法就是,你自己写一个类,把你在数据库中查到的list 转换成Sting,格式就是JSON样子的就行,但前提是你比较牛叉,能很快写出来,并且是对的,第二种方式就是用第三方jar包(如:json-lib.jar,下载地址:
/f/21122133.html?from=like或者jackson.jar,下载地址:
/Code/Jar/j/Downloadjacksonjar.htm;),对于我这么不牛叉的人来说,我选第二种方法,人家写得好而且支持双向转换。

下面主要介绍手写转换类。

有了json格式的数据接下来写入流进行回调:
String json=”jsonStr”;
response.getWriter.write(json);
以防出现乱码:在这之前加上:
response.setContentType(“utf-8”);
主要内容
一、jquery遍历jsonlist
二、js取得json值
三、Jquery ajax请求格式如下
四、Java:对象、list、javabean转换为json对象【一】
五、Java:对象、list、javabean转换为json对象【二】
六、Java:对象、list、javabean转换为json对象【三】
1.jquery遍历jsonlist
vararr=[{name:"john",lang:"js"},{name:"nailwl",lang:"jquery"},{name:"吴磊",lang:"ext"}]; $.each(arr,function(index,content)
{
alert("theman'sno.is:"+index+",and"++"islearning"+ng); });
2.js取得json值
js中著名的eval函数
varstrJSON="{name:'admin'}";//得到的JSON
varobj=eval("("+strJSON+")");//转换后的JSON对象
alert();//admin
3.Jquery ajax请求格式如下
<script type="text/javascript">
function BtnClick() {
var uid = $("#Text1").attr("value");
var pwd = $("#Text2").attr("value");
$.ajax({
url: "server.php",
type: "post",
data: { UserName: uid, Password: pwd },
/*<!--
第一种方法遍历json数据
success: function(data) {
eval("datas = "+data);
var user = erName;
var pass = datas.password;
$("#dd").html("<h1>用户名:" + user + " 密码:" + pass + "</h1>"); }-->*/
/*第二种方法遍历json数据*/
success: function(data) {
var json =eval("["+data+"]");//这里中间的括号为中括号使数据类似[{"username":"张三","content":"沙发"}];的格式
$.each(json, function(idx, item) {
var user = erName;
var pass = item.password;
$("#dd").html("<h1>用户名:" + user + " 密码:" + pass + "</h1>"); });
}
});
}
</script>
Java:对象、list、javabean转换为json对象【一】packagedsh.bikegis.tool;
importjava.beans.IntrospectionException;
importjava.beans.Introspector;
importjava.beans.PropertyDescriptor;
importjava.util.List;
/**
*json的操作类
*@authorNanGuoCan
*
*/
publicclassJsonUtil{
/**
*@paramobject
*任意对象
*@ng.String
*/
publicstaticStringobjectToJson(Objectobject){ StringBuilderjson=newStringBuilder();
if(object==null){
json.append("\"\"");
}elseif(objectinstanceofString||objectinstanceofInteger){ json.append("\"").append(object.toString()).append("\""); }else{
json.append(beanToJson(object));
}
returnjson.toString();
}
/**
*功能描述:传入任意一个javabean对象生成一个指定规格的字符串
*
*@parambean
*bean对象
*@returnString
*/
publicstaticStringbeanToJson(Objectbean){
StringBuilderjson=newStringBuilder();
json.append("{");
PropertyDescriptor[]props=null;
try{
props=Introspector.getBeanInfo(bean.getClass(),Object.class)
.getPropertyDescriptors();
}catch(IntrospectionExceptione){
}
if(props!=null){
for(inti=0;i<props.length;i++){
try{
Stringname=objectToJson(props[i].getName());
Stringvalue=objectToJson(props[i].getReadMethod().invoke(bean)); json.append(name);
json.append(":");
json.append(value);
json.append(",");
}catch(Exceptione){
}
}
json.setCharAt(json.length()-1,'}');
}else{
json.append("}");
}
returnjson.toString();
}
/**
*功能描述:通过传入一个列表对象,调用指定方法将列表中的数据生成一个JSON规格指定字符串
*
*@paramlist
*列表对象
*@ng.String
*/
publicstaticStringlistToJson(List<?>list){
StringBuilderjson=newStringBuilder();
json.append("[");
if(list!=null&&list.size()>0){
for(Objectobj:list){
json.append(objectToJson(obj));
json.append(",");
}
json.setCharAt(json.length()-1,']');
}else{
json.append("]");
}
returnjson.toString();
}
}
Java:对象、list、javabean转换为json对象【二】
package young.ajax.json;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.List;
import java.util.Map;
import java.util.Set;
import mons.logging.Log;
import mons.logging.LogFactory;
public class JsonUtil {
private static Log log = LogFactory.getLog(JsonUtil.class); public static String object2json(Object obj) {
StringBuilder json = new StringBuilder();
if (obj == null) {
json.append("\"\"");
} else if (obj instanceof String || obj instanceof Integer || obj instanceof Float
|| obj instanceof Boolean || obj instanceof Short || obj instanceof Double
|| obj instanceof Long || obj instanceof BigDecimal || obj instanceof BigInteger
|| obj instanceof Byte) {
json.append("\"").append(string2json(obj.toString())).append("\""); } else if (obj instanceof Object[]) {
json.append(array2json((Object[]) obj));
} else if (obj instanceof List) {
json.append(list2json((List<?>) obj));
} else if (obj instanceof Map) {
json.append(map2json((Map<?, ?>) obj));
} else if (obj instanceof Set) {
json.append(set2json((Set<?>) obj));
} else {
json.append(bean2json(obj));
}
return json.toString();
}
public static String bean2json(Object bean) {
StringBuilder json = new StringBuilder();
json.append("{");
PropertyDescriptor[] props = null;
try {
props = Introspector.getBeanInfo(bean.getClass(), Object.class).getPropertyDescriptors();
} catch (IntrospectionException e) {}
if (props != null) {
for (int i = 0; i < props.length; i++) {
try {
String name = object2json(props[i].getName());
String value =
object2json(props[i].getReadMethod().invoke(bean));
json.append(name);
json.append(":");
json.append(value);
json.append(",");
} catch (Exception e) {}
}
json.setCharAt(json.length() - 1, '}'); } else {
json.append("}");
}
return json.toString();
}
public static String list2json(List<?> list) {
StringBuilder json = new StringBuilder(); json.append("[");
if (list != null && list.size() > 0) {
for (Object obj : list) {
json.append(object2json(obj));
json.append(",");
}
json.setCharAt(json.length() - 1, ']'); } else {
json.append("]");
}
return json.toString();
}
public static String array2json(Object[] array) {
StringBuilder json = new StringBuilder(); json.append("[");
if (array != null && array.length > 0) { for (Object obj : array) {
json.append(object2json(obj));
json.append(",");
}
json.setCharAt(json.length() - 1, ']'); } else {
json.append("]");
}
return json.toString();
}
public static String map2json(Map<?, ?> map) {
StringBuilder json = new StringBuilder(); json.append("{");
if (map != null && map.size() > 0) {
for (Object key : map.keySet()) {
json.append(object2json(key));
json.append(":");
json.append(object2json(map.get(key))); json.append(",");
}
json.setCharAt(json.length() - 1, '}'); } else {
json.append("}");
}
return json.toString();
}
public static String set2json(Set<?> set) {
StringBuilder json = new StringBuilder(); json.append("[");
if (set != null && set.size() > 0) {
for (Object obj : set) {
json.append(object2json(obj));
json.append(",");
}
json.setCharAt(json.length() - 1, ']'); } else {
json.append("]");
}
return json.toString();
}
public static String string2json(String s) {
if (s == null)
return "";
StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
switch (ch) {
case '"':
sb.append("\\\"");
break;
case '\\':
sb.append("\\\\");
break;
case '\b':
sb.append("\\b");
break;
case '\f':
sb.append("\\f");
break;
case '\n':
sb.append("\\n");
break;
case '\r':
sb.append("\\r");
break;
case '\t':
sb.append("\\t");
break;
case '/':
sb.append("\\/");
break;
default:
if (ch >= '\u0000' && ch <= '\u001F') {
String ss = Integer.toHexString(ch);
sb.append("\\u");
for (int k = 0; k < 4 - ss.length(); k++) {
sb.append('0');
}
sb.append(ss.toUpperCase());
} else {
sb.append(ch);
}
}
}
return sb.toString();
}
}
Java:对象、list、javabean转换为json对象【三】
package young.ajax.json;import
java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONException;
import net.sf.json.JSONObject;
public class JsonConvert
{ public static JSONObject message(String message, boolean success)
{ Map map = new HashMap();
map.put("success", success);
map.put("message", message);
return JSONObject.fromObject(map);
}
public static JSONObject generate(List list)
{ Map map = new HashMap();
map.put("totalProperty", list.size());
map.put("root", list);
return JSONObject.fromObject(map);
}
public static JSONObject javabean2json(Object object, String message, boolean success)
{ Map map = new HashMap();
map.put("success", success);
map.put("message", message);
map.put("data", object);
return JSONObject.fromObject(map);
}
public static JSONObject objectcollect2json(List list, String
total) {
Map map = new HashMap();
map.put("totalProperty", total);
map.put("root", list);
return JSONObject.fromObject(map);
}
public static JSONArray getJSONArrayFormString(String str) { if (str == null || str.trim().length() == 0) {
return null;
}
JSONArray jsonArray = null;
try {
jsonArray = JSONArray.fromObject(str);
} catch (JSONException e)
{ e.printStackTrace(); }
return jsonArray; }
public static JSONObject StringToJSONOBject(String str) {
if (str == null || str.trim().length() == 0)
{ return null; }
JSONObject jsonObject = null;
try { jsonObject = JSONObject.fromObject(str);
} catch (JSONException e)
{ e.printStackTrace(); }
return jsonObject; }}
将以上的代码任意的一种转换方式添加到JsonConvert.java,以方便以后的使用
本文档也结合了网上的一些原话,请原创见谅。

相关文档
最新文档