重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
json一般都是配合ajax一起使用的 我做做过的小例子 粘给你 你可以研究一下
公司主营业务:网站设计、成都网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联建站是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联建站推出北海街道免费做网站回馈大家。
js部分
//获取卡的金额
function get_money(){
var str=document.getElementById("pk_card_type").value;
//alert(str);
var url = '/member_h.do';
var pars = 'method=getMoney';
pars+='pk_card_type='+str;
var ajax = new Ajax.Request(
url,
{method:'post',parameters:pars,onComplete:show_money}
);
}
//回调函数 写入卡的金额
function show_money(dataResponse)
{
var data = eval('(' + dataResponse.responseText + ')');
var price=0;
price=data.price;
var collection_fees=0;
collection_fees=data.collection_fees;
document.getElementById("recharge").value=price;
document.getElementById("collection_fees").value=collection_fees;
}
action部分
public ActionForward getMoney(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
response.setContentType("text/html; charset=utf-8");
try {
IElementaryFileService ggsv = new ElementaryFileService();
String pk_card_type = request.getParameter("pk_card_type");
Card_TypeVO ctvo=new Card_TypeVO();
ctvo=ggsv.queryByPK(Card_TypeVO.class, pk_card_type);
PrintWriter out = response.getWriter();
// 这里的数据拼装一般是从数据库查询来的
JSONObject jsonObject = new JSONObject();
if(ctvo!=null){
jsonObject.put("price", ctvo.getCard_money());
jsonObject.put("collection_fees", ctvo.getCash());
}else{
jsonObject.put("price", 0);
jsonObject.put("collection_fees", 0);
}
out.print(jsonObject.toString());
out.flush();
out.close();
return null;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
工具/原料
安装有eclipse软件的电脑一台
方法/步骤
1
首先我们在eclipse中创建一个java工程,在java工程中创建一个HelloWorld的类,在这个java的入口程序中,我们来创建一个json字符串,并且打印出来,如下图:
2
将我们刚刚创建的json字符串打印出来如下所示,可以看出这个json包含了一个大json对象,大json对象里面又包含一个json数组,一个数组里面又包含三个json对象,如下图:
3
在java中我们要解析json数组必须借助第三方包,所以这里我们加载一下第三方包,首先我们将鼠标移动到项目名称上面去,然后右键召唤出右键快捷菜单,然后依次点击Build Path-Configure Build Paht...,如下图:
4
然后我们按照图中红色方框所示点击Libraries,然后点击Add Library...,如下图所示:
5
然后我们继续按照图中所示点击User Library,然后点击Next,如下图:
6
然后我们继续按照图中红色方框所示点击User Libraries...,如下图:
7
然后我们点击New...,来开始创建我们自己的libraries,如下图:
8
然后我们输入我们自己jar库的名字,这里我使用了jsonjar作为我们的名字,如下图:
9
接下来为我们的jar库添加jar包,我们按照下图中红色方框所示点击“Add External JARs”,如下图:
10
我们添加json相关的jar包,这里涉及json的第三方包主要包括这七个,所以我们把这七个包都引入到我们自己的jar库中去,如下图:
11
返回到User Libraries中发现,我们已经引入了所有的jar包,如下图:
我们按照下图中红色方框所示画勾,然后点击finish,如下图:
然后我们按照图中红色边框所示点击Apply,然后点击OK,如下图:
回到我们的工程中,从工程目录中我们可以看到,我们已经添加了自己的名字为jsonjar的jar库,如下图:
接下来我们回到程序中,在头部添加“import net.sf.json.JSONArray;import net.sf.json.JSONObject;”这两句代码,这两句表示引入了解析json的对象和数组的包,如下图:
然后我们通过代码“JSONObject.fromObject(json_array)”来将我们之前创建的json字符串转换成json对象,并且通过键值对的方式打印出json对象名字为“employees”的值,如下图:
打印出的名字为“employees”的json对象的值如下图是一个数组字符串,如下图:
接下来我们通过代码“jsonobj.getJSONArray("employees")”来将获取的数组字符串转变成为json组数,如下图:
并且我们打印出json数组的长度,可见程序计算的json数组的长度和我们实际的数组长度相一致,如下图:
接下来我们通过一个for循环将我们获取的json数组中的值依次取出来,由于数组中又包含3个对象,我们又需要将3个对象使用代码“JSONObject.fromObject(jsonarr.get(i));”将得到的对象字符串变成对象然后再取出来,如下图:
最后,我们将json数组的所有内容都展示到控制台,这样我们就可以使用java通过第三方json包来解析json数组了,如下图:
将json字符串转换为java对象
同样先将json字符串转换为json对象,再将json对象转换为java对象,如下所示。
JSONObject obj = new JSONObject().fromObject(jsonStr);//将json字符串转换为json对象
将json对象转换为java对象
Person jb = (Person)JSONObject.toBean(obj,Person.class);//将建json对象转换为Person对象
3.将java对象转换为json字符串
先将java对象转换为json对象,在将json对象转换为json字符串
JSONObject json = JSONObject.fromObject(obj);//将java对象转换为json对象
String str = json.toString();//将json对象转换为字符串