应用json一般是这样情况。
1、页面上需要获取并显示列表。ajax从Url中获得json字符串。
然后页面需要json.js,链接是https://github.com/douglascrockford/JSON-js,选择zip。
测试
<html>
<head>
<title>json测试</title>
<script src="json.js" type="text/javascript"></script>
<style type="text/css">
#tlist thead tr{ background-color:#ccc}
#tlist table{ width:300px}
</style>
</head>
<body>
<div id="tlist">
</div>
<script>
var str='[{"age":12,"firstName":"yang","lastName":"guang"},{"age":32,"firstName":"yang1","lastName":"guang1"},{"age":42,"firstName":"yang2","lastName":"guang2"}]';
var obj = str.parseJSON(str); //由JSON字符串转换为JSON对象
var html = "<table cellspacing=0 cellpadding=0><thead> <tr><td>姓</td><td>名</td><td>年龄</td></tr></thead> <tbody>";
for (v = 0; v < obj.length; v++){
html += "<tr>";
html += "<td>" + obj[v].firstName + "</td>";
html += "<td>" + obj[v].lastName + "</td>";
html += "<td>" + obj[v].age + "</td>";
html += "</tr>";
}
html += "</tbody></table>";
document.getElementById("tlist").innerHTML = html;
</script>
</body>
</html>
2、页面上js拼出json字符串传给后台。
字符串格式:
[
{"age":12,"firstName":"yang","lastName":"guang"},
{"age":32,"firstName":"yang1","lastName":"guang1"},
{"age":42,"firstName":"yang2","lastName":"guang2"}
]
后台bean
public class User {
private String firstName;
private String lastName;
private int age;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
测试,假设从jsp页面传过来
public String getJson() {
StringBuilder sb=new StringBuilder();
sb.append("[ ");
sb.append("{\"firstName\":'yang',\"lastName\":'guang',\"age\":12},");
sb.append("{\"firstName\":'yang1',\"lastName\":'guang1',\"age\":32},");
sb.append("{\"firstName\":'yang2',\"lastName\":'guang2',\"age\":42},");
sb.append("]");
return sb.toString();
}
/**
* list转成json字符串,第一种情况
*/
public void listToJsonstr(){
JSONArray jsonObject = JSONArray.fromObject(jsonstrToList());
System.out.println(jsonObject);
}
/**
* 前端传来字符串转成list,第二种情况
* @return
*/
public List<User> jsonstrToList(){
List<User> list=new ArrayList<User>();
JSONArray jsonArray = JSONArray.fromObject(getJson() );
for(int i=0;i<jsonArray.size();i++){
JSONObject jsonobject=jsonArray.getJSONObject(i);
list.add((User)JSONObject.toBean(jsonobject, User.class));
}
for(int i=0;i<list.size();i++){
System.out.println( list.get(i).getFirstName() );
}
return list;
}