[Json]json-lib簡單處理java對象變為json對象

來源:互聯網
上載者:User

由於js對json的原生支援,所以現在很多項目的資料轉送都喜歡用json。 怎麼樣把資料從java對象轉化為json對象,有怎麼把前台的json對象轉化成java對象去處理?

這是開發中常要解決的問題。

json-lib是sourceforge的一個開源項目,常用來解決java json資料轉換的問題。

 

但是還需要一些依賴包才可以正常使用

commons-beanutils-1.8.0.jar


commons-collections-3.1.jar


commons-logging-1.1.1.jar


commons-logging-api-1.1.jar


ezmorph-1.0.6.jar


commons-lang-2.4.jar  !!用3.x的jar無法啟動並執行


這裡是這些包的

 


由於官網的doc總是打不開 於是就看了下別人的blog

這裡是java -》json 轉化的幾個小案例

Person.java  javabean模型

 

[java]
package com.lzz.json; 
 
public class Person { 
    private int id; 
    private String name; 
    private String addr; 
     
    public Person(){ } 
     
    public Person(int id, String name, String addr) { 
        super(); 
        this.id = id; 
        this.name = name; 
        this.addr = addr; 
    } 
 
    public int getId() { 
        return id; 
    } 
 
    public void setId(int id) { 
        this.id = id; 
    } 
 
    public String getName() { 
        return name; 
    } 
 
    public void setName(String name) { 
        this.name = name; 
    } 
 
    public String getAddr() { 
        return addr; 
    } 
 
    public void setAddr(String addr) { 
        this.addr = addr; 
    } 

package com.lzz.json;

public class Person {
 private int id;
 private String name;
 private String addr;
 
 public Person(){ }
 
 public Person(int id, String name, String addr) {
  super();
  this.id = id;
  this.name = name;
  this.addr = addr;
 }

 public int getId() {
  return id;
 }

 public void setId(int id) {
  this.id = id;
 }

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public String getAddr() {
  return addr;
 }

 public void setAddr(String addr) {
  this.addr = addr;
 }
}

這裡是幾個操作的案例

SimpleJavaToJson.java

 

[java]
package com.lzz.json; 
 
import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List; 
import java.util.Map; 
 
import net.sf.json.JSONArray; 
import net.sf.json.JSONObject; 
 
/**ref http://ryxxlong.iteye.com/blog/583862
 *json 支援原生的js 
 *使用eval 可以直接變為js對象 
 *JSON Java  
 *string <=> java.lang.String, java.lang.Character, char 
 *number <=> java.lang.Number, byte, short, int, long, float, double 
 *true|false <=> java.lang.Boolean, boolean 
 *null <=> null 
 *function <=> net.sf.json.JSONFunction 
 *array <=> net.sf.json.JSONArray (object, string, number, boolean, function) 
 *object <=> net.sf.json.JSONObject 
*/ 
 
public class SimpleJavaToJson { 
    public static void main(String[] args) { 
        /*集合類型的從java 編程json對象*/ 
        //arrayJson();  
        //listJson();  
        //stringJson();  
         
        /*map類型的處理*/ 
        mapJson(); 
         
        /*javabean的處理*/ 
        beanJson(); 
    } 
     
    //數組處理  
    public static void arrayJson(){ 
        String arr[] ={"lzz","12","ee"} ; 
        JSONArray jarr = JSONArray.fromObject(arr); 
        System.out.println(jarr); 
    } 
     
    //List處理  
    public static void listJson(){ 
        List<String> list = new ArrayList<String>(); 
        list.add("apple"); 
        list.add("orange"); 
        list.add("money"); 
        JSONArray jlist = JSONArray.fromObject(list); 
        System.out.println(jlist); 
    } 
     
    //字串 形式 這裡的字串一定要符合json 集合的格式  
    public static void stringJson(){ 
        String str = "['a','b','c',{d:'aa'}]"; 
        JSONArray jarr = JSONArray.fromObject(str); 
        System.out.println(jarr); 
    } 
     
    //將map類型轉化為json格式,產生的json對象也是沒有順序的  
    public static void mapJson(){ 
        Map map = new HashMap(); 
        map.put("name", "apple"); 
        map.put("age", new Integer(20)); 
        map.put("haoren",Boolean.TRUE); 
        map.put("arr", new String[]{"a","b","c"}); 
        JSONObject jobj = JSONObject.fromObject(map); 
        System.out.println(jobj); 
    } 
         
    //javabean 的json轉化  
    public static void beanJson(){ 
        Person p = new Person(101, "apple", "China"); 
        JSONObject jobj = JSONObject.fromObject(p); 
        System.out.println(jobj); 
    } 
         

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.