Java与JSON(二)之使用

java 生成json与解析

文章一地址:http://zhangfan822.iteye.com/blog/1880830


在JAVA中构造和解析JSON我用的是org.json,附件为相应的org.json.jar.

下面是两个函数,一个是创建JSON,一个是从文本构造JSON并解析之。

创建json

Java代码   收藏代码
  1. //construct json and output it    
  2. public String jsonTest() throws JSONException{  
  3.     JSONObject json=new JSONObject();  
  4.     JSONArray jsonMembers = new JSONArray();  
  5.     JSONObject member1 = new JSONObject();  
  6.     member1.put("loginname""zhangfan");  
  7.     member1.put("password""userpass");  
  8.     member1.put("email","10371443@qq.com");  
  9.     member1.put("sign_date""2007-06-12");  
  10.     jsonMembers.put(member1);  
  11.   
  12.     JSONObject member2 = new JSONObject();  
  13.     member2.put("loginname""zf");  
  14.     member2.put("password""userpass");  
  15.     member2.put("email","8223939@qq.com");  
  16.     member2.put("sign_date""2008-07-16");  
  17.     jsonMembers.put(member2);  
  18.     json.put("users", jsonMembers);  
  19.   
  20.     return json.toString();  
  21. }  

 解析json 

Java代码   收藏代码
  1. //construct json from String and resolve it.  
  2. public String jsonTest2() throws JSONException{  
  3.     String jsonString="{\"users\":[{\"loginname\":\"zhangfan\",\"password\":\"userpass\",\"email\":\"10371443@qq.com\"},{\"loginname\":\"zf\",\"password\":\"userpass\",\"email\":\"822393@qq.com\"}]}";  
  4.     JSONObject json= new JSONObject(jsonString);  
  5.     JSONArray jsonArray=json.getJSONArray("users");  
  6.     String loginNames="loginname list:";  
  7.     for(int i=0;i<jsonArray.length();i++){  
  8.         JSONObject user=(JSONObject) jsonArray.get(i);  
  9.         String userName=(String) user.get("loginname");  
  10.         if(i==jsonArray.length()-1){  
  11.             loginNames+=userName;  
  12.         }else{  
  13.             loginNames+=userName+",";  
  14.         }  
  15.     }  
  16.     return loginNames;  
  17. }  

 JAVA中处理JSON还是相当方便的。



java中使用Json数据

文章二转载地址:http://blog.csdn.net/woshixuye/article/details/7244318

使用json-lib的程序jar包下载地址:
http://json-lib.sourceforge.net/

 

 

 

注意各个jar包必不可少,否则报错^_^

 


 

JsonTest.Java代码如下:


import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class JsonTest {
    
    @SuppressWarnings("unchecked")
    public static void main(String args[]){
        
        //list集合转换为json代码
        List list = new ArrayList();
        list.add("girl");
        list.add("boy
");
        
        JSONArray ja = JSONArray.fromObject(list);
        System.out.println(ja);    
        
        // Map集合转换成json代码
        Map map = new HashMap();
        map.put("name", "kava");
        map.put("bool", Boolean.TRUE);
        map.put("int", new Integer(1));
        map.put("array", new String[]{"a","b"});
        map.put("func", "function(){return 3;}");
        
        JSONObject jo = JSONObject.fromObject(map);
        System.out.println(jo);
        
        //Bean转换成json代码
        JSONObject jsonBean = JSONObject.fromObject(new UserBean("kava","shanghai","88765687"));
        System.out.println(jsonBean);
        
        //一般数据转换为json代码
        JSONArray ja2 = JSONArray.fromObject("['json','shiryu','kava']");
        System.out.println(ja2);
        
        //一组beans转换为json代码
       
List list2 = new ArrayList();
        UserBean u1 = new UserBean("shiryu","shanghai","6666");
        UserBean u2 = new UserBean("tina","guangzhou","5587");
        
        list2.add(u1);
        list2.add(u2);
        JSONArray ja3 = JSONArray.fromObject(list2);
        System.out.println(ja3);    
    }    
}

 


UserBean.java代码如下:

public class UserBean {
    private String username;
    private String city;
    private String tel;
    
    public UserBean() { 
    }
    
    public UserBean(String username,String city,String tel) {
        this.username=username;
        this.city = city;
        this.tel = tel;
    }
    
    public String getUsername() {
        return username;
    }
    
    public void setUsername(String username) {
        this.username = username;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getTel() {
        return tel;
    }

    public void setTel(String tel) {
        this.tel = tel;
    }

}

最后控制台结果如下:

["girl","boy"]
{"func":function(){return 3;},"int":1,"bool":true,"name":"kava","array":["a","b"]}
{"city":"shanghai","tel":"88765687","username":"kava"}
["json","shiryu","kava"]
[{"city":"shanghai","tel":"6666","username":"shiryu"},{"city":"guangzhou","tel":"5587","username":"tina"}]

 

 


也可将json数据转为java数据


import net.sf.json.JSONObject;

public class StringToJson {
    public static void main(String args[]){
    String json = "{name=\"kava\",bool:true,int:1,double:2.2,func:function(a){return a;},array:[1,2]}";

    JSONObject jsonObject = JSONObject.fromObject(json); 
    Object bean = JSONObject.toBean(jsonObject);
    String name = jsonObject.getString("name");
    
    System.out.print(name+"--"+bean.toString());     
    }
}

 

原帖地址:http://apps.hi.baidu.com/share/detail/17805020



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值