大学IT网 - 最懂大学生的IT学习网站! QQ资料交流群:367606806
当前位置:大学IT网 > Java技巧 > Java中JSON的简单使用与前端解析

Java中JSON的简单使用与前端解析(1)

关键词:JavaJSONJSON解析  阅读(4118) 赞(11)

[摘要]本文是对Java中JSON的简单使用与前端解析的讲解,对学习Java编程技术有所帮助,与大家分享。

一、JSON

  JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 JSON采用完全独立于语言的文本格式。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。

  JSON与XML的对比(引用自:sanpintian的CSDN博客):

  1、可读性:JSON和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,很难分出胜负。

  2、可扩展性:XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。

  3、编码难度:XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML就不太容易了。

  4、解码难度:XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。这一点XML输的真是没话说。

  5、流行度:XML已经被业界广泛的使用,而JSON才刚刚开始,但是在Ajax这个特定的领域,未来的发展一定是XML让位于JSON。到时Ajax应该变成Ajaj(Asynchronous Javascript and JSON)了。

二、导包

  使用JSON需要导入以下包:

  commons-beanutils.jar
  commons-logging.jar
  commons-lang.jar
  commons-collection.jar
  ezmorph.jar
  json-lib.jar

三、实现

 Book类的实现:
  public class Book {
     private String name;
     private double price;
     
     public String getName() {
         return name;
     }
 
     public void setName(String name) {
         this.name = name;
     }
 
     public double getPrice() {
         return price;
     }
 
     public void setPrice(double price) {
         this.price = price;
     }
 
     @Override
     public String toString() {
         return name+" "+price;
     }
 }
 /**
  * @author ZWQ
  * **/
 public class JsonTest {
     public static void main(String[] args) {
         //***********************************************************************
         // json基本测试
         {
             //新建一个JSON数组
             JSONArray jsonArray = new JSONArray();
             //新建一个JSON对象
             JSONObject json1 = new JSONObject();
             json1.put("id", "1");
             json1.put("name", "张三");
             json1.put("password", "123456");
             //将JSON对象添加到JSON数组中去
             jsonArray.add(json1);
 
             JSONObject json2 = new JSONObject();
             json2.put("id", "2");
             json2.put("name", "李四");
             json2.put("password", "654321");
             jsonArray.add(json2);
             System.out.println("json数组基本测试:" + jsonArray);
             
             //结果:
             //[{"id":"1","name":"张三","password":"123456"},{"id":"2","name":"李四","password":"654321"}]
         }
         
         //***********************************************************************
         //将对象转成JSON字符串
         {
             Book book = new Book();
             book.setName("Java入门教程");
             book.setPrice(52.3);
             //将Java对象转成JSON对象
             JSONObject jsonObject = JSONObject.fromObject(book);
             System.out.println("从Object到JSONObject:" + jsonObject.toString());
             
             //结果:
             //从Object到JSONObject:{"name":"Java入门教程","price":52.3}
         }
         
         //***********************************************************************
         //将对象集合转成JSON字符串
         {
             List<Book> list = new ArrayList<Book>();
             Book book1 = new Book();
             book1.setName("高等数学I");
             book1.setPrice(34.1);
             Book book2 = new Book();
             book2.setName("线性代数");
             book2.setPrice(12.7);
             list.add(book1);
             list.add(book2);
             //将List集合转为JSON数组
             JSONArray jsonArray= JSONArray.fromObject(list);
             System.out.println("从Object集合到JSONArray:" + jsonArray.toString());
             
             //结果:
             //从Object集合到JSONArray:[{"name":"高等数学I","price":34.1},{"name":"线性代数","price":12.7}]
         }
         
         //***********************************************************************
         // 将JSON字符串转为Java对象
         {
             String jsonString = "{name:'数据结构',price:52.3}";
             JSONObject jsonObject = JSONObject.fromObject(jsonString);
             //将JSON对象转为Java对象
             Book book = (Book) JSONObject.toBean(jsonObject, Book.class);
             System.out.println(book.toString());
 
             //结果:
             //数据结构 52.3
         }
         
         //***********************************************************************
         //将JSON字符串转为Java对象数组
         {
             // (2).Bean的数组
             String jsonsString = "[{name:'数据库基础',price:52.3},{name:'Oracle 11g精华',price:42.3}]";
             JSONArray jsonArray = JSONArray.fromObject(jsonsString);
             //将JSON数组转为Java对象数组
             Book[] books = (Book[]) JSONArray.toArray(jsonArray, Book.class);
             for (Book b : books) {
                 System.out.println(b.toString());
             }
             
             //结果:
             //数据库基础 52.3
             //Oracle 11g精华 42.3
         }
     }
 }
«上一页12下一页»


相关评论