创建JSON

引用org.json包,推荐通过maven引用

1、直接构建

JSONObject obj = new JSONObject();
obj.put("sex", "male");
obj.put("age", 22);
obj.put("is_student", true);
obj.put("hobbies", new String[] {"hiking", "swimming"}); //调用toString()方法可直接将其内容打印出来
System.out.println(obj.toString()); 结果:
{"hobbies":["hiking","swimming"],"sex":"male","name":"John","is_student":true,"age":22}
key值必须为String类型, value可以为boolean、double、int、long、Object、Map以及Collection等。
当然,double以及int等类型只是在Java中,写入到json中时,统一都会以Number类型存储。

2、使用HashMap构建

Map<String, Object> data = new HashMap<String, Object>();
data.put("name", "John");
data.put("sex", "male");
data.put("age", 22);
data.put("is_student", true);
data.put("hobbies", new String[] {"hiking", "swimming"});
JSONObject obj = new JSONObject(data);
System.out.println(obj.toString());

 3、使用JavaBean构建(常用,代码重用率高)

//JavaBean
public class PersonInfo {
private String name;
private String sex;
private int age;
private boolean isStudent;
private String[] hobbies;
public void setName(String name) {
this.name = name;
}
public void setSex(String sex) {
this.sex = sex;
}
public void setAge(int age) {
this.age = age;
}
public void setStudent(boolean isStudent) {
this.isStudent = isStudent;
}
public void setHobbies(String[] hobbies) {
this.hobbies = hobbies;
}
//getter不能少
public String getName() {
return name;
}
public String getSex() {
return sex;
}
public int getAge() {
return age;
}
public boolean isStudent() {
return isStudent;
}
public String[] getHobbies() {
return hobbies;
}
} //Main
import org.json.JSONObject;
public class JSONObjectSample {
public static void main(String[] args) {
createJsonByJavaBean();
}
private static void createJsonByJavaBean() {
PersonInfo info = new PersonInfo();
info.setName("John");
info.setSex("male");
info.setAge(22);
info.setStudent(true);
info.setHobbies(new String[] {"hiking", "swimming"});
JSONObject obj = new JSONObject(info);
System.out.println(obj);
}
}

解析JSON

基本类型的解析直接调用JSONObject对象的getXxx(key)方法,如果获取字符串则getString(key),以此类推。

数组的解析麻烦一点,需要通过JSONObject对象的getJSONArray(key)方法获取到一个JSONArray对象,再调用JSONArray对象的get(i)方法获取数组元素,i为索引值

@RequestMapping("/view")
public ModelAndView user(HttpServletRequest request,User user){
String path = request.getParameter("path") + "";
String contextPath = request.getContextPath();
ModelAndView mav = new ModelAndView();
JSONObject jsonObj = new JSONObject();
jsonObj = userService.getGroupList(user); //判断JSON是否存在error_msg,存在则请求失败,返回错误信息
   if(jsonObj.has("error_msg")){
  String error_msg = (String) jsonObj.get("error_msg");
mav.addObject("msg",error_msg );
}else{//解析JSON,获取用户组列表
//Integer result_num= jsonObj.getInt("result_num");//返回结果数
JSONArray result = jsonObj.getJSONArray("result");
String resStr = result.toString();
resStr = resStr.replace("[", "").replace("]", "").replace("\"", "");
String[] groupList = resStr.split(",");
mav.addObject("groupList", groupList);
}
mav.addObject("contextPath", contextPath);
mav.setViewName(path);
return mav;
}

最新文章

  1. asp.net Word Document Open return null
  2. discuz论坛与其它网站登录注册整合
  3. TYVJ P1051 选课 Label:多叉转二叉&amp;&amp;树形dp(虐心♥)
  4. (转载)R14也称作子程序连接寄存器
  5. openStack images概念及维护
  6. 【剑指offer】打印单列表从尾部到头部
  7. java反射机制(1)
  8. web前端工程师全套教程免费分享
  9. Developer Survey Results 2017
  10. Win7下安装composer, 并使用其安装smarty
  11. myeclipse配置tomcat服务器
  12. 集合-Comparator和Comparable
  13. 在XPS13 上安装Ubuntu 16.04
  14. PHP自定义curl请求
  15. Metaspace 之一:Metaspace整体介绍(永久代被替换原因、元空间特点、元空间内存查看分析方法)
  16. linux服务器安装mysql并配置外网访问
  17. VGA Output from STM32F4 Discovery board
  18. Machine learning 第7周编程作业 SVM
  19. Java基础之equals() 和 hashCode()
  20. SQL Server 自动备份数据脚本

热门文章

  1. 前端网页打印插件print.js(可导出pdf)
  2. ubuntu系统64位dnw
  3. Qt学习笔记-了解信号与槽-自定义信号-自定义槽
  4. 母鸡下蛋实例:多线程通信生产者和消费者wait/notify和condition/await/signal条件队列
  5. swap是干嘛的?
  6. maven仲裁机制
  7. mysql事务_事务隔离级别详解
  8. b站视频下载技术分享
  9. three.js 显示中文字体 和 tween应用
  10. Vue——监听器watch