`

使用jackson转换xml为hashmap形式

阅读更多
  jackson这个开源包其实是个好东西,是对json转换进行的好东西。今天看到一个例子,综合
使用了apache common的ioutil包,jackson结合的例子,是将一个文件读入的XML转换为hashmap,

例子如下:

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import net.sf.json.JSON;
import net.sf.json.xml.XMLSerializer;

import org.apache.commons.io.IOUtils;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;

public class XML2JSONConvertor {
public static void main(String[] args) throws Exception {

InputStream is = new FileInputStream(new File(
“e:\\jagannathan\\personal\\java-projects\\secondtest.xml”));
String xml = IOUtils.toString(is);

XMLSerializer xmlSerializer = new XMLSerializer();
JSON json = xmlSerializer.read(xml);

System.out.println(json.toString(2));

printJSON(json.toString(2));

}

public static void printJSON(String jsonString) {
ObjectMapper mapper = new ObjectMapper();

try {

Map<String, Object> jsonInMap = mapper.readValue(jsonString,
new TypeReference<Map<String, Object>>() {
});

List<String> keys = new ArrayList<String>(jsonInMap.keySet());

for (String key : keys) {
System.out.println(key + “: ” + jsonInMap.get(key));
}

} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}



比如一个XML为:
<?xml version=”1.0″ encoding=”UTF-8″?>
<company>
<name>Jags Inc</name>
<employees>
<employee>
<name>Jagan</name>
<sex>Male</sex>
<dob>24-jul</dob>
</employee>
<employee>
<name>Satya</name>
<sex>Male</sex>
<dob>24-apr</dob>
</employee>
</employees>
</company>


  则可以看到jackson输出的map形式的输出:
7 Feb, 2013 7:20:50 PM net.sf.json.xml.XMLSerializer getType
INFO: Using default type string
{
“name”: “Jags Inc”,
“employees”: [
{
"name": "Jagan",
"sex": "Male",
"dob": "24-jul"
},
{
"name": "Satya",
"sex": "Male",
"dob": "24-apr"
}
]
}
name: Jags Inc
employees: [{name=Jagan, sex=Male, dob=24-jul}, {name=Satya, sex=Male, dob=24-apr}]


   可以看到,jackson其实还是比较快的,听说测评比json-lib快,可以一用
1
0
分享到:
评论
2 楼 di1984HIT 2013-07-11  
确实不错。
1 楼 closer13 2013-02-22  
json-lib好像没有新版本,老版本不支持common-lang3,现在改用fastjson了

相关推荐

    java list和xml互转例子

    此外,为了提高效率和简化操作,还可以使用其他库,如JAXB(Java Architecture for XML Binding)或者Jackson的XML模块。 总之,Java List与XML之间的转换是数据交换和持久化的重要手段,而dom4j库提供了一种方便的...

    java转换xml、list、map和json[借鉴].pdf

    最后,使用`doc2String`方法将XML Document转换为字符串。 4. List到XML转换: - `listtoXml` 方法:这个方法类似地处理List对象,不过它为List中的每个元素创建一个`&lt;node&gt;`元素,然后调用`maptoXml`方法将每个...

    json与xml相互互转无jar包纯java实现,也可使用lib的jar实现功能。

    例如,JSON对象可以通过创建一个HashMap来构建,然后使用JAXB(Java Architecture for XML Binding)将HashMap转换为XML。 2. **使用lib的jar实现功能**: - **Gson库**:Google提供的Gson库可以方便地在Java对象...

    jackson的jar包,用于转换map与list到json

    使用Jackson,你可以轻松地将Map或List对象转换为JSON字符串,这对于存储、传输或者展示数据非常方便。例如,你可以创建一个`ObjectMapper`实例,然后调用其`writeValueAsString()`方法来实现转换: ```java import...

    JSON-lib框架,转换JSON、XML不再困难

    1. **对象与JSON的转换**:JSON-lib提供了丰富的API,允许开发者将Java对象如ArrayList、HashMap等直接转换为JSON字符串,反之亦可将JSON字符串反序列化为Java对象。 2. **XML与JSON的互转**:除了基础的JSON操作,...

    json数据转换jar包

    2. **转换功能**:json-lib可以将Java对象(如ArrayList、HashMap)直接转换为JSON格式,也可以将JSON字符串解析成对应的Java对象。 3. **与其他技术的集成**:json-lib也支持与Hibernate、Struts、Spring等框架的...

    转换为json数据以及完整的json包

    例如,使用Jackson库,可以创建一个`ObjectMapper`实例,并调用`writeValueAsString()`方法将结果集转换为JSON字符串: ```java import com.fasterxml.jackson.databind.ObjectMapper; // 假设rs是ResultSet对象 ...

    Map转JSON的jar包

    本文将详细介绍如何使用Java将Map转换为JSON,并提供相关的jar包及其使用方法。 首先,我们需要一个支持JSON操作的库,比如Jackson、Gson或者org.json等。在这个场景中,我们关注的是"Map转JSON"和"mapתJSON"这两...

    json-lib-2.4-jdk15及其依赖jar包

    在使用`json-lib`时,开发者可以将Java对象如HashMap、ArrayList等转换为JSON字符串,然后通过网络传输或者存储。反过来,也可以将接收到的JSON字符串解析成对应的Java对象,便于进一步处理。例如: ```java import...

    javabean_map_string和json互转详细文档+例子

    为了将JavaBean转换为JSON字符串,我们可以使用如Jackson、Gson或Fastjson等库。 以Jackson为例,首先确保引入Jackson库: ```xml &lt;groupId&gt;com.fasterxml.jackson.core&lt;/groupId&gt; &lt;artifactId&gt;jackson-...

    详解json string转换为java bean及实例代码.docx

    ### 详解 JSON String 转换为 Java Bean 及实例代码 #### 一、引言 在现代软件开发中,尤其是涉及到前后端交互的应用场景,数据格式的转换变得尤为重要。JSON(JavaScript Object Notation)是一种轻量级的数据...

    beanutils的jar包.zip

    你可以使用Jackson的`ObjectMapper`将JSON字符串转换为`User`对象,再利用BeanUtils进行进一步的属性设置: ```java import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.beanutils....

    java对象与json对象的转换[借鉴].pdf

    在Java编程中,将对象转换为JSON(JavaScript Object Notation)格式是常见的需求,反之亦然。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也方便机器解析和生成。在Java中,可以使用各种库来实现这种...

    json-lib-2.4-jdk15及其附属jar

    2. **JSON解析**:从JSON字符串中解析出相应的Java对象,如将JSON字符串转换为HashMap、ArrayList等。 3. **XML与JSON互转**:提供了XML与JSON之间的转换功能,使得在XML和JSON之间进行数据交换变得更加方便。 4. **...

    json-lib.rar

    例如,你可以使用`net.sf.json.JSONObject`类将一个HashMap转换为JSON格式: ```java import net.sf.json.JSONObject; import java.util.HashMap; HashMap, String&gt; map = new HashMap(); map.put("name", "张三")...

    json-lib-2.4-jdk15.jar及其相关依赖

    2. **Map到JSON**: 对于包含键值对的数据结构,如HashMap,`json-lib`也能轻松将其转换为JSON对象。 3. **数组和集合到JSON**: 数组、ArrayList或LinkedList等集合类也可以转换为JSON数组。 4. **XML到JSON**: `json...

    json的一些jarbao

    - 支持将XML数据转换为JSON格式,方便在不同的数据交换场景下使用。 - 反向操作,将JSON数据转换回XML,满足不同API接口的需求。 3. **与其他Java集合的兼容性:** - json-lib可以无缝地与Java集合框架集成,如...

    在JAVA中使用JSON 的jar包

    6. **XML与JSON转换**:如果你需要在XML和JSON之间转换,可以使用`net.sf.json.xml.XMLSerializer`类,提供`fromXML`和`toXML`方法。 在实际项目中,你可能还会遇到处理嵌套JSON结构、日期格式化、自定义转换规则等...

    jsonjson-lib-2.3-jdk15.zip

    4. **处理XML和JSON之间的转换**:`json-lib`提供`XML.toJSONObject()`和`JSONObject.toXML()`方法,使得在XML和JSON之间进行数据交换成为可能。 5. **自定义转换规则**:如果默认的转换方式不满足需求,可以通过...

Global site tag (gtag.js) - Google Analytics