2014-01-24 111 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]