`

解析传入的XML报文,返回Map<String,Object>

 
阅读更多
import net.sf.json.xml.XMLSerializer;
public static Map<String,Object> msg_xml2map(String xml){
		XMLSerializer xmlSerializer = new XMLSerializer();
		JSON json = xmlSerializer.read(xml);
		Map<String,Object> maps = Utility.fromJson(json.toString(), java.util.Map.class);
		return removeNullNode(maps);
	}

public static <T> T fromJson(String jsonString, Class<T> clazz) {
		try {
			return mapper.readValue(jsonString, clazz);
		} catch (Exception e) {
			log.error("parse json string error:" + jsonString, e);
			return null;
		}
	}

/**
	 * 
	 * 去除空的map(xml转map时用)
	 * 
	 * @param maps
	 */
	public static Map<String,Object> removeNullNode(Map<String,Object> maps){		
		if(null!=maps){
			 for (Map.Entry<String, Object> m : maps.entrySet()) {
				 if(m.getValue() instanceof Map){				
					 removeNullNode((Map<String,Object>)m.getValue());					 
				 }else{
					 if(m.getValue() instanceof ArrayList){
							List list = (ArrayList) m.getValue();
							if(list.size()==0){
								m.setValue("");
							}
						}
				 }
			 }
		}
		
		return maps;
	}
分享到:
评论

相关推荐

    java xml和map互转

    Map&lt;String, Object&gt; result = new HashMap&lt;&gt;(); for (Object child : element.content()) { if (child instanceof Element) { Element childElement = (Element) child; String key = childElement.getName();...

    javaScript如何处理从java后台返回的list

    事情: 从java后台返回List&lt;String&gt;类型数据,用于界面显示。但js中想获取它并操作它。直接使用EL表达式,js把它识别成字符串了。不是我想要的啊。。网上搜了搜大家的解决方案…最好的当然是把List集合转成json格式...

    RedisTemplate redisTemplate(RedisConnectionFactory factory)

    RedisTemplate&lt;String, Object&gt; redisTemplate(RedisConnectionFactory factory)自定义RedisTemplate配置类,是个固定模板,可以拿来直接使用,可以直接传入Key:String和Value:Object这种类型,注意Object类需要实现...

    读取excel(.xls,.xlsx)文件JAVA源代码

    可以传入文件的 开始行,结束行,sheet页名称,开始列,结束列,读取文件,返回List&lt;Map&lt;String, Object&gt;&gt;类型和List&lt;List&lt;Object&gt;&gt;类型,List&lt;Map&lt;String, Object&gt;&gt;需要传入对应的key字符串,然后用“;”...

    List转换成String数组

    本文将详细介绍如何将一个`List&lt;String&gt;`类型的集合转换为`String[]`数组,并通过不同的方法来实现这一过程。这不仅有助于提高代码的可读性和效率,还能帮助开发者更好地理解和运用Java集合框架。 #### 一、背景...

    json报文与XML互转

    String xmlString = "&lt;MyObject&gt;&lt;field1&gt;value1&lt;/field1&gt;&lt;field2&gt;2&lt;/field2&gt;&lt;/MyObject&gt;"; Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new StringReader(xmlString));...

    html2image 2.0.3 用于简单的html转图片

    &lt;artifactId&gt;xml-apis&lt;/artifactId&gt; &lt;version&gt;1.4.01&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.xhtmlrenderer&lt;/groupId&gt; &lt;artifactId&gt;flying-saucer-core&lt;/artifactId&gt; &lt;version&gt;9.0.6&lt;/version&gt; ...

    通用分页组件

    &lt;br/&gt;&lt;br/&gt;for(Object t:data){&lt;br/&gt;System.out.println(((String[])t)[0]+" : "+((String[])t)[1]);&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;如果是WEB页面上的分页可以直接使用&lt;br/&gt;List data=WebPageUtils....

    ibatis 用HashMap解决resultClass映射

    Map&lt;Integer, String&gt; result = new HashMap&lt;&gt;(); for (int i = 0; i &lt; testList.size(); i++) { Map&lt;String, Object&gt; tmp = testList.get(i); result.put((Integer) tmp.get("ID"), (String) tmp.get("NAME"));...

    json解析类

    这里我们可以推测,该方法的目的是根据传入的模型类名来解析 JSON 数据,并返回一个 `List&lt;HashMap&lt;String, Object&gt;&gt;`。 ### 3. 总结 这个 JSON 解析类提供了一种简单的方式来处理 JSON 数据,支持单个对象和数组的...

    mybatisIntercept.zip

    public List&lt;Map&lt;String, Object&gt;&gt; getConditionsPage(Page page, String condition , String recognitionresult, String starttime , String endtime) throws Exception { SqlSession sqlSession = sqlSession = ...

    java生成word文档

    Map&lt;String, Object&gt; model = new HashMap&lt;&gt;(); model.put("title", "我的报告"); List&lt;Map&lt;String, String&gt;&gt; dataList = ... // 初始化数据列表 model.put("data", dataList); generator.generateWord("document....

    C#序列化与反序列化(包括复杂xml对象)

    string xmlString = "&lt;MyData&gt;&lt;KeyValue&gt;&lt;item key=\"key1\"&gt;value1&lt;/item&gt;&lt;item key=\"key2\"&gt;value2&lt;/item&gt;&lt;/KeyValue&gt;&lt;TagValue&gt;tagValue&lt;/TagValue&gt;&lt;ObjectArray&gt;&lt;Object&gt;&lt;NestedTag&gt;nestedValue1&lt;/NestedTag&gt;&lt;/...

    MyBatis传入集合 list 数组 map参数的写法

    当传入的参数是一个List时,`&lt;foreach&gt;`标签的`collection`属性应设置为`list`。例如,以下是一个查询员工的例子,其中`list`参数包含员工ID的列表: ```xml &lt;select id="getEmployeesListParams" resultType=...

    String_Resources中定义一些特殊字符串

    &lt;string name="test"&gt;第 &lt;xliff:g id="album"&gt;%d&lt;/xliff:g&gt; 张专辑,第 &lt;xliff:g id="song"&gt;%d&lt;/xliff:g&gt; 首歌曲。&lt;/string&gt; &lt;/resources&gt; ``` 使用方法与之前类似,只需传递相应数量的参数即可。 4. **可选择...

    word读取并替换内容(table与变量都可替换)

    Map&lt;String, String&gt; replacements = new HashMap&lt;&gt;(); replacements.put("旧变量", "新变量"); String inputFile = "input.docx"; String outputFile = "output.docx"; replaceContentInWord(inputFile, ...

    VC,VB,C#与flash8结合开发中callfunction的运用

    Flash1.CallFunction "&lt;invoke name=""show"" returntype=""xml""&gt;&lt;arguments&gt;&lt;string&gt;hello&lt;/string&gt;&lt;string&gt;world&lt;/string&gt;&lt;/arguments&gt;&lt;/invoke&gt;" End Sub Private Sub Form_Load() ShockwaveFlash1.LoadMovie...

    java导出word之freemarker导出程序

    Map&lt;String, Object&gt; data = new HashMap&lt;&gt;(); data.put("reportDate", new Date()); List&lt;Item&gt; items = ...; // 初始化items列表 data.put("items", items); WordExporter exporter = new WordExporter(); ...

    xml Document to Json

    String xmlString = "&lt;root&gt;&lt;item id='1'&gt;Item 1&lt;/item&gt;&lt;item id='2'&gt;Item 2&lt;/item&gt;&lt;/root&gt;"; ObjectMapper jsonMapper = new ObjectMapper(); XmlMapper xmlMapper = new XmlMapper(); // 将XML字符串转换为...

    JAXBContext 解析xml

    3. 调用Unmarshaller的`unmarshal()`方法,传入XML输入源,得到解析后的Java对象。 4. Java对象会反映出XML文档的结构,包括嵌套列表。 通过合理利用JAXBContext,开发者可以高效、方便地处理XML数据,无论是简单的...

Global site tag (gtag.js) - Google Analytics