2014-01-24 163 views
0

我正在閱讀關於他們的文章,但它讓我感到困惑。兩者有什麼區別?傑克遜或JSON用法

Which is one is better to use? 

我有我的JSON ..怎麼可以JACKSON幫我解析?

+0

看一看這個[JSON恩gines比較](http://stackoverflow.com/q/7935078/1051783)。我更喜歡使用傑克遜 – gunar

回答

1

你不能比較傑克遜和JSON。 Jackson是用於處理JSON數據的庫。

Jackson is a multi-purpose Java library for processing JSON data format. Jackson aims to be the best possible combination of fast, correct, lightweight, and ergonomic for developers. 

http://wiki.fasterxml.com/JacksonHome

+0

後續問題我有我的json現在..我怎樣才能使用傑克遜? – AndroidNewbie

+0

你可以從這裏下載http://wiki.fasterxml.com/JacksonDownload –

1

JSON是一種數據格式,傑克遜是一個Java庫,用於創建和分析JSON。

1

Jackson是上JSON操作庫

JSON代表JavaScript對象表示法,它是一個數據格式

0

From Wikipedia about JSON

JavaScript對象符號,是一個開放的標準格式使用 人類可讀文本傳輸由 屬性值對組成的數據對象。它主要用於在 服務器和Web應用程序之間傳輸數據,作爲XML的替代方案。

From Jackson home page: 傑克遜是:

  • FAST(測量爲比任何其他Java JSON分析器和數據 粘結劑更快)
  • 流(讀取,寫入)
  • 零依賴關係(不依賴於JDK之外的其他包)
  • 強大的(全面數據綁定,適用於常見的JDK類以及任何 Jav一個bean類,
  • 集合,地圖或枚舉),可配置
  • 開源(Apache許可證 - 或者,直到2.1,或者LGPL)

下面你可以找到簡單的例子,如何反序列化JSON數據到Java POJO類:

import java.net.URL; 
import java.text.SimpleDateFormat; 
import java.util.Calendar; 
import java.util.List; 

import com.fasterxml.jackson.databind.ObjectMapper; 
import com.google.common.base.Joiner; 

public class JacksonProgram { 

    public static void main(String[] args) throws Exception { 
     URL osurceUrl = new URL("http://app-dlslsg.azurewebsites.net/json/postList.php"); 

     ObjectMapper mapper = new ObjectMapper(); 
     mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); 
     PostList postList = mapper.readValue(osurceUrl, PostList.class); 
     System.out.println(postList); 
    } 
} 

class PostList { 

    private List<Post> post; 

    public List<Post> getPost() { 
     return post; 
    } 

    public void setPost(List<Post> post) { 
     this.post = post; 
    } 

    @Override 
    public String toString() { 
     return Joiner.on(System.getProperty("line.separator")).join(post); 
    } 
} 

class Post { 

    private int id; 
    private String body; 
    private String image; 
    private Calendar stamp; 

    public int getId() { 
     return id; 
    } 

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

    public String getBody() { 
     return body; 
    } 

    public void setBody(String body) { 
     this.body = body; 
    } 

    public String getImage() { 
     return image; 
    } 

    public void setImage(String image) { 
     this.image = image; 
    } 

    public Calendar getStamp() { 
     return stamp; 
    } 

    public void setStamp(Calendar stamp) { 
     this.stamp = stamp; 
    } 

    @Override 
    public String toString() { 
     return "Post [id=" + id + ", body=" + body + ", image=" + image + ", stamp=" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(stamp.getTime()) + "]"; 
    } 
} 

上面的程序打印:

Post [id=101, body=google, image=http://app-dlslsg.azurewebsites.net/images/google.png, stamp=2013-11-18 12:12:02] 
Post [id=61, body=facebook, image=http://app-dlslsg.azurewebsites.net/images/facebook.png, stamp=2013-11-16 13:28:35] 
Post [id=111, body=Calendar, image=http://app-dlslsg.azurewebsites.net/images/ical.png, stamp=2013-11-18 12:12:14] 
Post [id=121, body=Outlook, image=http://app-dlslsg.azurewebsites.net/images/outlook.png, stamp=2013-11-18 12:12:21] 
Post [id=131, body=USG, image=http://app-dlslsg.azurewebsites.net/images/1472825_453923301384770_1942535278_n.jpg, stamp=2013-11-18 12:24:30] 
Post [id=231, body=http://dlsu-usg.com/activities/dare-for-10-extended/ 

WE DARE YOU… To make a change in someone’s life now. 

The Office of the Vice President for External Affairs and BLAZE 2013 brings you 「DARE FOR TEN" EXTENDED!!! 

Your TEN PESOS can make a d, image=http://app-dlslsg.azurewebsites.net/, stamp=2013-11-27 14:47:24] 
Post [id=241, body=http://tours.wowbatangas.com/files/2011/01/IMG_6018.jpg, image=http://app-dlslsg.azurewebsites.net/, stamp=2014-01-03 16:06:31] 
Post [id=251, body=iTRAVELpost, image=http://app-dlslsg.azurewebsites.net/images/ic_launcher-web.png, stamp=2014-01-10 08:53:19]