就直接“编排”json字符串。
为要输出的对象增加一个String toJSON()方法
StringBuilder b=new StringBuilder()
b.append("{ name:\"")
b.append(username)
b.append("\"}")
依次类推
return b.toString()
适合绝大多数情况。
补充:json是做交换格式,查询效率非常低,如果做存储的检索格式就误用了。
就是说“聊天信息的保存用json应该可以吧”还不如你之前的mysql数据库。
json用在客户端往服务端发送的通讯交换数据的格式上。服务端收到后转为数据库中或内存中存放。
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/htmlcharset=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
}
}
json说白了就是一个封装了很多需要数据的字符串,使用起来比XML方便一些。
前台页面:现在在前端用jquery或直接用js都可以读取拆解服务器端传来的json,在struts里通过配置文件会自动把返回结果生成json,使用起来很方便的
后台程序:获取前台封装的json,可以直接转换成字符串在读取里边传过来的参数进行查询 *** 作
总之,json还是很方便的,是现在很流行的数据传输载体
辛苦打字,望采纳
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)