jackson 使用(java jar-jackson-all-1.9.0jar自行下载)

  1. import java.io.StringWriter;  
  2. import java.util.ArrayList;  
  3. import java.util.HashMap;  
  4. import java.util.List;  
  5. import java.util.Map;  
  6.   
  7. import org.codehaus.jackson.JsonFactory;  
  8. import org.codehaus.jackson.JsonGenerator;  
  9. import org.codehaus.jackson.JsonParser;  
  10. import org.codehaus.jackson.map.DeserializationConfig.Feature;  
  11. import org.codehaus.jackson.map.MappingJsonFactory;  
  12. import org.codehaus.jackson.map.ObjectMapper;  
  13. import org.codehaus.jackson.type.JavaType;  
  14.   
  15. public class JsonUtils {  
  16.   
  17.     public static <K, V> String toJson(Map<K, V> obj) {  
  18.         String jsonString = "";  
  19.         try {  
  20.             if (obj == null) {  
  21.                 return "";  
  22.             }  
  23.             StringWriter sw = new StringWriter();  
  24.             JsonGenerator gen = new JsonFactory().createJsonGenerator(sw);  
  25.             ObjectMapper mapper = new ObjectMapper();  
  26.             mapper.writeValue(gen, obj);  
  27.             jsonString = sw.toString();  
  28.             sw.close();  
  29.         } catch (Exception ex) {  
  30.             ex.printStackTrace();  
  31.             return "";  
  32.         }  
  33.   
  34.         return jsonString;  
  35.     }  
  36.   
  37.     @SuppressWarnings("unchecked")  
  38.     public static Map<String, Object> toMap(String json) {  
  39.         Map<String, Object> result = new HashMap<String, Object>();  
  40.         try {  
  41.             if (json == null || json.equals("")) {  
  42.                 return null;  
  43.             }  
  44.   
  45.             ObjectMapper objectMapper = new ObjectMapper();  
  46.             result = objectMapper.readValue(json, Map.class);  
  47.             if (result == null) {  
  48.                 return new HashMap<String, Object>();  
  49.             }  
  50.         } catch (Exception ex) {  
  51.             ex.printStackTrace();  
  52.         }  
  53.   
  54.         return result;  
  55.     }  
  56.   
  57.     public static String toJson(Object object) {  
  58.         String json = "";  
  59.         try {  
  60.             if (object == null) {  
  61.                 return "";  
  62.             }  
  63.             StringWriter sw = new StringWriter();  
  64.             JsonGenerator gen = new JsonFactory().createJsonGenerator(sw);  
  65.             ObjectMapper mapper = new ObjectMapper();  
  66.   
  67.             mapper.writeValue(gen, object);  
  68.   
  69.             json = sw.toString();  
  70.             sw.close();  
  71.         } catch (Exception ex) {  
  72.             ex.printStackTrace();  
  73.             json = "";  
  74.         }  
  75.         return json;  
  76.     }  
  77.   
  78.     public static <T> T toObject(String json, Class<T> clazz) {  
  79.         T obj = null;  
  80.         try {  
  81.             if (json == null || json.equals("")) {  
  82.                 return null;  
  83.             }  
  84.             JsonFactory jsonFactory = new MappingJsonFactory();  
  85.             JsonParser jsonParser = jsonFactory.createJsonParser(json);  
  86.             ObjectMapper mapper = new ObjectMapper();  
  87.     mapper.configure(Feature.FAIL_ON_UNKNOWN_PROPERTIES,false);
  88.             //mapper.getDeserializationConfig().set(Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);  
  89.             obj = mapper.readValue(jsonParser, clazz);  
  90.   
  91.         } catch (Exception ex) {  
  92.             ex.printStackTrace();  
  93.             obj = null;  
  94.         }  
  95.         return obj;  
  96.   
  97.     }  
  98.   
  99.     public static <T> List<T> toList(String json, Class<T> clazz) {  
  100.         if (json == null || json.equals("")) {  
  101.             return null;  
  102.         }  
  103.         ObjectMapper mapper = new ObjectMapper();  
  104.         mapper.configure(Feature.FAIL_ON_UNKNOWN_PROPERTIES,false); 
  105.         List<T> list = new ArrayList<T>();  
  106.         try {  
  107.             JavaType type = mapper.getTypeFactory().constructParametricType(List.class, clazz);  
  108.             list = mapper.readValue(json, type);  
  109.             return list;  
  110.         } catch (Exception e) {  
  111.             e.printStackTrace();  
  112.         }  
  113.   
  114.         return list;  
  115.     }  
  116. }  
  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
jackson所需要的所有jar jackson-all-1.6.2.jar jackson-core-asl-1.6.2.jar jackson-mapper-asl-1.6.2.jar jakarta-oro.jar 1. 背景 目前维护的产品使用jackson处理json,现整理一下jackson相关资料,希望对初次接触jackson的新手有所帮助。 jackson主页: http://jackson.codehaus.org/ jackson document: http://wiki.fasterxml.com/JacksonJavaDocs JacksonInFiveMinutes: http://wiki.fasterxml.com/JacksonInFiveMinutes 本文主要内容译自JacksonInFiveMinutes,增加了部分示例,转载请注明出处。 受java平台上各种处理xml的类库(StAX, JAXB等)启发,Jackson提供一种处理json的java类库。Jackson的目标是为开发者提供快速、准确、轻量级和用起来最爽的json处理类库。本文将概括介绍Jackson的主要功能和相关功能的使用示例。 2. 使用方式 Jackson提供三种可选的json处理方式: 1) Streaming API 又称Incremental parsing/generation, 受StAX API启发,以非关联递增方式读写json内容。 通过 org.codehaus.jackson.JsonParser读取,通过org.codehaus.jackson.JsonGenerator写入。 2) Tree Model 通过基于内存的树形结构来描述json数据,和 XML DOM类似。通过org.codehaus.jackson.map.ObjectMapper构建树,树由JsonNode节点组成。 3) Data Binding 基于属性访问或注解的方式将json和POJO对象互相转换, 受JAXB基于注解的处理方式启发。通过org.codehaus.jackson.map.ObjectMapper读写json数据。它包含两种类型: 3.1 Simple Data Binding 用于json和Java Maps, Lists, Strings, Numbers, Booleans and nulls的相互转换。 3.2 Full Data Binding 用于json和Java Bean的相互转换。 下面从使用的角度上比较三种处理方式: Streaming API 执行效率最高,读写速度最快,另外两种方式都基于它实现; Tree Model 是最灵活的; Data Binding 通常是最方便使用的;
### 回答1: Apache Flume是基于数据流的分布式系统,专门用于从各种非结构化数据源收集,聚合和移动大量数据,它支持多种数据源的连接和数据交付到多种数据存储库。该软件是Apache软件基金会下的一个顶级项目,它是一个稳定、高效和可靠的工具,可以帮助企业实现数据的有效管理和分析。 apache-flume-1.9.0-bin.tar.gz下载是通过Apache官网提供的链接来进行下载的。下载完成后需要进行安装和相关配置,以便能够与其他数据源进行连接和数据交付。该软件的安装和配置较为复杂,需要具备一定的计算机技能和数据管理知识。 下载完成后,用户需要解压该文件,并在用户设置的文件夹中配置flume-env.sh和flume.conf文件。配置后,即可启动Flume服务,进行数据的收集和聚合操作。在使用过程中,用户可以根据实际需要,选择不同的数据源和文件存储方式,以满足企业数据管理和分析的需求。 总之,Apache Flume是一个强大的数据管理和分析工具,具有广泛的应用和丰富的功能。但在使用前,用户需要详细了解该软件的安装和配置过程,并具备一定的技能和知识储备,以确保其能够正确地使用和操作。 ### 回答2: Apache Flume是一个分布式、可靠、高效的数据采集、聚合和传输系统,在数据处理中应用广泛。而apache-flume-1.9.0-bin.tar.gz则是Apache Flume的官方发布版本,其中bin表示此版本是可执行程序,tar.gz是一种压缩格式。 要下载apache-flume-1.9.0-bin.tar.gz,首先需要前往Apache Flume的官网,然后找到下载页面。在下载页面中可以选择下载镜像站点以及下载apache-flume-1.9.0-bin.tar.gz的链接。用户可以根据自己的网络情况、所在地区等因素选择镜像站点并点击相应的链接进行下载下载完成后,用户可以使用解压软件将apache-flume-1.9.0-bin.tar.gz解压到任何想要安装的目录中。解压完成后,在bin目录下可以找到flume-ng的可执行文件,即可尝试运行Flume。 值得注意的是,Apache Flume是一个开源项目,因此用户可以访问其源代码,也可以参与到项目的开发中来。该软件的最新版本、文档等信息也可在官网上获得。 ### 回答3: Apache Flume是一款优秀的分布式高可靠日志收集与聚合工具,可以将数据从各种不同的数据源采集并集中到集中式的Hadoop数据仓库中。而Apache Flume 1.9.0-bin.tar.gz是Apache Flume的最新版本程序包,包含了Flume各种组件的可执行文件、示例配置文件、JAVA API等组件。 如果要下载Apache Flume 1.9.0-bin.tar.gz,可以先访问Apache Flume的官网,找到需要下载的地方,可以选择使用浏览器直接下载使用命令行工具wget下载到本地,解压缩后将Flume各个组件配置好后就可以使用了。 需要注意的是,安装Apache Flume还需要为其配置相应的环境(例如配置JDK环境变量等),并进行一些必要的安全设置。而且对于不同的数据源与Hadoop生态系统版本,Apache Flume部署和配置也会略有不同。因此,在使用过程中,应该先学习Apache Flume的相关知识,并根据情况灵活应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值