终于通过学习自己写出多级分组的json并应用到目录树下了。
--------------
生成对应JSON的jsp
--------------
<%@ page cOntentType="text/html; charset=gbk" language="java"
errorPage="" %>
<%@ page language="java" import="java.io.PrintWriter"%>
<%
response.setHeader("Cache-Control",
"no-cache");
response.setCharacterEncoding("gbk");
PrintWriter xmlout = response.getWriter();
int start = 0;
int limit = 2;
//int limit = (int) (Math.random() * 10*10);
//System.out.println(limit);
String url = "http://www.baidu.com";
String target = "_blank";
StringBuffer sb = new StringBuffer();
sb.append("{root:[");
sb.append("{study:[{'NodeName': '招商研究'},");
for (int i=start;i
sb.append("{'NodeName':'");
if(Math.floor(Math.random() * 100)>50)
{
sb.append("个股研究");
}
else
{
sb.append("大盘研究");
}
sb.append("','NodeLink':'");
sb.append(url);
sb.append("','NodeTarget':'");
sb.append(target);
sb.append("'}");
if(i!=limit-1){
sb.append(",");
}
else
{
sb.append("]},");
}
}
sb.append("{magazine:[{'NodeName': '客户杂志'},");
for (int i=start;i
sb.append("{'NodeName':'");
if(Math.floor(Math.random() * 100)>50)
{
sb.append("最新杂志");
}
else
{
sb.append("推荐文章");
}
sb.append("','NodeLink':'");
sb.append(url);
sb.append("','NodeTarget':'");
sb.append(target);
sb.append("'}");
if(i!=limit-1){
sb.append(",");
}
else
{
sb.append("]},");
}
}
sb.append("{info:[{'NodeName': '市场信息'},");
for (int i=start;i
sb.append("{'NodeName':'");
if(Math.floor(Math.random() * 100)>50)
{
sb.append("利好信息");
}
else
{
sb.append("熊市信息");
}
sb.append("','NodeLink':'");
sb.append(url);
sb.append("','NodeTarget':'");
sb.append(target);
sb.append("'}");
if(i!=limit-1){
sb.append(",");
}
else
{
sb.append("]},");
}
}
sb.append("{monitor:[{'NodeName': '后台监控'},");
for (int i=start;i
sb.append("{'NodeName':'");
if(Math.floor(Math.random() * 100)>50)
{
sb.append("委托监控");
}
else
{
sb.append("自主监控");
}
sb.append("','NodeLink':'");
sb.append(url);
sb.append("','NodeTarget':'");
sb.append(target);
sb.append("'}");
if(i!=limit-1){
sb.append(",");
}
else
{
sb.append("]}");
}
}
sb.append("]}");
String rs = sb.toString();
System.out.println(rs);
try
{
xmlout.write(rs);
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
xmlout.flush();
xmlout.close();
}
%>
-------------------
JSON (Javascript Object Notation)一种简单的数据格式,比xml更轻巧。 JSON 是
Javascript
原生格式,这意味着在 Javascript 中处理 JSON 数据不需要任何特殊的 API 或工具包。 JSON的规则很简单:
对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’
对”之间使用“,”(逗号)分隔。具体细节参考http://www.json.org/json-zh.html
举个简单的例子:
js 代码:
function showJSON() {
var user
=
{
"username":"andy",
"age":20,
"info": {
"tel": "123456", "cellphone": "98765"},
"address":
[
{"city":"beijing","postcode":"222333"},
{"city":"newyork","postcode":"555666"}
]
}
alert(user.username);
alert(user.age);
alert(user.info.cellphone);
alert(user.address[0].city);
alert(user.address[0].postcode);
}
这表示一个user对象,拥有username,
age, info, address 等属性。
同样也可以用JSON来简单的修改数据,修改上面的例子
js
function showJSON() {
var user =
{
"username":"andy",
"age":20,
"info": {
"tel": "123456", "cellphone": "98765"},
"address":
[
{"city":"beijing","postcode":"222333"},
{"city":"newyork","postcode":"555666"}
]
}
alert(user.username);
alert(user.age);
alert(user.info.cellphone);
alert(user.address[0].city);
alert(user.address[0].postcode);
user.username =
"Tom";
alert(user.username);
}
JSON提供了json.js包,下载http://www.json.org/json.js
后,将其引入然后就可以简单的使用object.toJSONString()转换成JSON数据。(注意:如果是2005左右的json.js,方法是不同的,JSON.stringify(object)的)
js 代码
function showCar() {
var carr
=
new Car("Dodge",
"Coronet R/T", 1968, "yellow");
alert(carr.toJSONString());
}
function Car(make,
model, year, color) {
this.make = make;
this.model = model;
this.year = year;
this.color = color;
}
可以使用eval来转换JSON字符到Object
js
function myEval() {
var str =
'{
"name": "Violet", "occupation": "character" }';
var obj = eval('('
+ str
+
')');
//eval方法是js内置的方法不需要引入任何外部js文件就可以使用了,可以直接把json文件转换成对象使用
alert(obj.toJSONString());
}
或者使用parseJSON()方法
js
function myEval() {
var str =
'{ "name": "Violet", "occupation":
"character" }';
var obj = str.parseJSON();
alert(obj.toJSONString());
}
===========================
JSON (Javascript Object Notation)一种简单的数据格式,比xml更轻巧。 JSON 是 Javascript 原生格式,这意味着在 Javascript 中处理 JSON 数据不需要任何特殊的 API 或工具包。
JSON的规则很简单: 对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。具体细节参考http://www.json.org/json-zh.html
举个简单的例子:
程序代码
这表示一个user对象,拥有username, age, info, address 等属性。
同样也可以用JSON来简单的修改数据,修改上面的例子
程序代码
JSON提供了json.js包,下载http://www.json.org/json.js 后,将其引入然后就可以简单的使用object.toJSONString()转换成JSON数据。
程序代码
可以使用eval来转换JSON字符到Object
程序代码
或者使用parseJSON()方法
程序代码
下面使用prototype写一个JSON的ajax例子。
先写一个servlet (我的是servlet.ajax.JSONTest1.java)就写一句话
程序代码
再在页面中写一个ajax的请求
程序代码
prototype-1.5.1.js中提供了JSON的方法,String.evalJSON(), 可以不使用json.js, 修改上面的方法
程序代码
JSON还提供了java的jar包 http://www.json.org/java/index.html API也很简单,下面举个例子
在Javascript中填加请求参数
程序代码
使用JSON请求字符串就可以简单的生成JSONObject并进行解析,修改servlet添加JSON的处理(要使用json.jar)
程序代码
同样可以使用JSONObject生成JSON字符串,修改servlet
程序代码