JSON Java解析

一。JSON多数组、多对象解析

jsp文件 页面发送json字符串

var people = { "programmers": [{ "firstName": "Elliotte", "lastName":"Harold","email": "elharo@macfaq.com" }],
"authors": [{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" }],
  "musicians": [{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
  { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }]
  }; 
  // var obj = eval('(' + str + ')');   


 createXMLHttpRequest()

var url = "parseJson.do?people=" + people.toJSONString();

  

XMLHttpReq.open("get",url,true);
// XMLHttpReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
XMLHttpReq.onreadystatechange=processResponse;
XMLHttpReq.send(null);


java 文件类方法 解析json字符串

public void jxJSON(HttpServletRequest request, HttpServletResponse response) throws Exception {
// TODO 自动生成方法存根

String jsonString = request.getParameter("people");   

JSONObject jb = JSONObject.fromObject(jsonString);   
JSONArray array=jsonObj.getJSONArray("programmers");
System.out.println("array:"+array.get(0));
JSONObject obj=jsonObj.getJSONObject("singer");
System.out.println("obj:"+obj.get("firstName"));
return null;

二。。JSON解析成java对象

JSON直接转化成对象,先创建一个简单的java值对象,代码示例为:
public class formBean {
private String username;
private String password;
private String sex;
private String[] love;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String[] getLove() {
return love;
}
public void setLove(String[] love) {
this.love = love;
}
}


有了JSON文本和需要绑定的java值对象后,那么我们下一步就是要编写另一个jsp页面convertJava.jsp(当然,你也可以使用servlet),用来把这段文本转换成java对象了。
另一页面,如: 代码片段如下:

request.setCharacterEncoding("GBK");
String jsobject = request.getParameter("str");// 这个是jsp页面传过来的对象字符串
JSONObject js = JSONObject.fromObject(jsobject);// 根据字符串转换对象
formBean bean = (formBean) js.toBean(js, formBean.class); // 把值绑定成相应的值对象
// 下面输出bean的值
response.setCharacterEncoding("GBK");
response.setContentType("text/html;charset=gbk");
out.println(bean.getUsername());
out.println(bean.getPassword());
out.println(bean.getSex());
out.println("bean的love属性为一个数组:");
for (String s : bean.getLove()) {
out.println("bean的数组元素:" + s );
}

通过上面的代码片段,可以了解到JSONObject有用的方法是fromObject(JSON文本)[用于讲JSON文本创建一个JSONObject实例]和toBean(带有JSON文本的JSONObject对象,你要绑定的java值对象类型.class)[用于把JSON文本转换成java对象]

至此,你就可以利用这个简单的java值对象了,不再用request的getParameter方法一一获取参数值,然后再使用java值对象的setter方法一一设置属性值这么麻烦了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值