java中使用Json

最近在学习JSON,顺便就把自己学习的总结一下一 简介: JSON(JavaScript对象符号)是一种轻量级的数据交换格式。这是很容易为人类所读取和写入。这是易于机器解析和生成。它是基于JavaScript编程语言的一个子集 , 标准ECMA-262第三版- 1999年12月。JSON是一个完全独立于语言的文本格式,但使用C家族的语言,包括C,C + +,C#,Java中的JavaScript,Perl的,Python中,和许多其他程序员所熟悉的约定。这些特性使JSON成为理想的数据交换语言。他和map很类似,都是以键/值 对存放的。

二 JSON 使用须要用的JAR包:

commons-lang.jarcommons-beanutils.jarcommons-collections.jarcommons-logging.jarezmorph.jarjson-lib-2.2.2-jdk15.jar

三 使用JSON中的JSONObject:1.创建一个JSONObject对象,并使用put();方法添加元素:首先我们创建一个User对象以备后用:

public class User { private int id; private String name; private String pwd; private String sex; //get,set方法 @Override //重写他的toString方法 public String toString() {   return this.name+"--"+this.pwd+"--"+this.sex; }}

例子如下:

import net.sf.json.JSONObject;public class TestJson { private static JSONObject json = null;public static void main(String[] args) {json = new JSONObject();json.put("id","1");json.put("name","张三");json.put("pwd","123456");System.out.println(json);}}运行:

C:\java>java TestJson{"id":"1","name":"张三","pwd":"123456"}通过这段代码我们就能很清淅的看到他的添加元素和map集合方式一样。现在我们要将这个json对象放进一个JAVABEAN的User对象怎么弄呢?很简单

我们须要在 TestJson 类中的主方法中加入(放在System.out.println(json)这句话后面)

User user = new User();user.setId(Integer.parseInt(json.getString("id")));

//json.getString("id")就是通过他的KEY值取得对应的value值user.setName(json.getString("name"));user.setPwd(json.getString("pwd"));System.out.println(user);

这样我们就把json这个对象里的值放进user对象里面了。运行:C:\java>java TestJson{"id":"1","name":"张三","pwd":"123456"}张三–123456–null

json添加元素除了用put();方法之外还可以用element();如:json.element("11", "222");

2.创建一个JSONArray对象,并添加元素:

JSONArray添加元素和list集合一样,当然取值也很像,代码如下

import net.sf.json.*;public class TestJson1 { private static JSONObject json = null;  private static JSONArray  jsonArray = null; public static void main(String[] args) {        jsonArray = new JSONArray ();       jsonArray.add(0, "张三");        jsonArray.add(1, "李四");        jsonArray.add(2, "王五");       jsonArray.add(3, "小三");        System.out.println(jsonArray);        System.out.println(jsonArray.get(1));     } } 

输出结果为:["张三","李四","王五","小三"]李四

注:json的基本格式这些网上很多,就不多说了,我们只须记住一句话就行了:[]表示数组,{}表示对象就完了!

1.从Object到String 要先用Object对象构造一个JSONObject或者JSONArray对象,然后调用它的toString()方法即可(1)示例一 Book book=new Book(); book.setName("Java"); book.setPrice(52.3f); JSONObject object=JSONObject.fromObject(book); System.out.println(object.toString());(2)示例二         Book book=new Book();         book.setName("Java");         book.setPrice(52.3f);                  Book book2=new Book();         book2.setName("C");         book2.setPrice(42.3f);         List list=new ArrayList();         list.add(book);        list.add(book2);        JSONArray arry=JSONArray.fromObject(list);        System.out.println(arry.toString()); //结果如下: [{"name":"Java","price":52.3},{"name":"C","price":42.3}]2.从String到Object 要先用String对象构造一个JSONObject或者JSONArray对象(1)示例一  String json="{name:'Java',price:52.3}";     JSONObject object=JSONObject.fromObject(json); System.out.println(object.get("name")+" "+object.get("price"));  (2)示例二 String json="[{name:'Java',price:52.3},{name:'C',price:42.3}]"; JSONArray array=JSONArray.fromObject(json); for(int i=0;i< array.size();i++){     Map o=(Map)array.get(i);     System.out.println(o.get("name")+" "+o.get("price")); }3.从String到Bean(1)单个Bean对象         String json="{name:'Java',price:52.3}";         JSONObject object=JSONObject.fromObject(json);         Product product=(Product)JSONObject.toBean(object,Product.class);         System.out.println(product.getName()+" "+product.getPrice()); (2).Bean的数组         String json="[{name:'Java',price:52.3},{name:'C',price:42.3}]";         JSONArray array=JSONArray.fromObject(json);         Product[] products=(Product[]) JSONArray.toArray(array,Product.class);         for(Product p:products){             System.out.println(p.getName()+" "+p.getPrice());         }自定义封装JSON操作的类 package com.util;  import java.util.List; import java.util.Map;  import net.sf.json.JSONArray; import net.sf.json.JSONObject;  public class JsonHelper {     //从普通的Bean转换为字符串  public static String getJson(Object o){         JSONObject jo=JSONObject.fromObject(o);         return jo.toString();     }     //从Java的列表转换为字符串 public static String getJson(List list){         JSONArray ja=JSONArray.fromObject(list);         return ja.toString();     }     //从Java对象数组转换为字符串 public static String getJson(Object[] arry){         JSONArray ja=JSONArray.fromObject(arry);         return ja.toString();     }      //从json格式的字符串转换为Map对象      public static Map getObject(String s){         return     JSONObject.fromObject(s);     }      //从json格式的字符串转换为List数组  public static List getArray(String s){         return JSONArray.fromObject(s);     }     //从json格式的字符串转换为某个Bean  public static Object getObject(String s,Class cls){         JSONObject jo=JSONObject.fromObject(s);        return JSONObject.toBean(jo, cls);     }     //从json格式的字符串转换为某类对象的数组 public static Object getArray(String s,Class cls){         JSONArray ja=JSONArray.fromObject(s);         return JSONArray.toArray(ja, cls);     } }

但我想说,我做了一个善良的平凡女子,并且一直在爱,

java中使用Json

相关文章:

你感兴趣的文章:

标签云: