`
Damon_Zhang
  • 浏览: 72286 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

传递字符串数组报文和解析

阅读更多

1 .项目中,难免遇到两个系统平台数据的交互,此时就需要通过接口来完成了;

2.WebService 基于 HTTP 通信,它跨平台,使得易购平台能无缝衔接,将应用程序的逻辑和数据暴露,使得其他应用系统可重用这些数据;

使用xml对数据封装,使得内容和结构分离,很强的可操作性,作为纯文本可方便的穿过防火墙,它规范统一、支持多种编码、易于扩展;

组装报文:传递字符串数组

public void createXml() {
		try {
			String[] input = { "damon,907931506", "chris,776295345" };
			String[] line = new String[2];
			DocumentBuilderFactory dFact = DocumentBuilderFactory.newInstance();
			DocumentBuilder build = dFact.newDocumentBuilder();
			Document doc = build.newDocument();
			doc.setXmlStandalone(true);
			Element root = doc.createElement("root");
			doc.appendChild(root);
			Element memberList = doc.createElement("members");
			root.appendChild(memberList);
			for (int i = 0; i < input.length; i++) {
				line = input[i].split(",");
				Element member = doc.createElement("member");
				memberList.appendChild(member);
				Element name = doc.createElement("name");
				name.appendChild(doc.createTextNode(line[0]));
				member.appendChild(name);
				Element phone = doc.createElement("qq");
				phone.appendChild(doc.createTextNode(line[1]));
				member.appendChild(phone);
			}
			TransformerFactory tFact = TransformerFactory.newInstance();
			Transformer trans = tFact.newTransformer();

			StringWriter writer = new StringWriter();
			StreamResult result = new StreamResult(writer);
			DOMSource source = new DOMSource(doc);
			trans.transform(source, result);
			System.out.println(writer.toString());
		} catch (TransformerException ex) {
			System.out.println("Error outputting document");
		} catch (ParserConfigurationException ex) {
			System.out.println("Error building document");
		}
	}

 调试输出结果为:

<?xml version="1.0" encoding="UTF-8"?>
<root>
	<members>
		<member>
			<name>damon</name>
			<qq>907931506</qq>
		</member>
		<member>
			<name>chris</name>
			<qq>776295345</qq>
		</member>
	</members>
</root>

 

客户端对报文进行解析:(对普通格式的xml进行解析,字符串数组类似)

public Map readXml(String xml) {
		Map map = new HashMap();
		try {
			Document doc = (Document) DocumentHelper.parseText(xml);
			Element element = doc.getRootElement();
			Iterator Elements = element.elementIterator();
			while (Elements.hasNext()) {
				Element user = (Element) Elements.next();
				if (user.getName().equals("returnCode")) {
					map.put(user.getName(), user.getStringValue());
				}
				Iterator iters = user.elementIterator("param");
				while (iters.hasNext()) {
					Element itemEle = (Element) iters.next();
					String paramKey = itemEle.elementTextTrim("paramKey");
					String paramValue = itemEle.elementTextTrim("paramValue");
					map.put(paramKey, paramValue);
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return map;
	}

 

3
1
分享到:
评论

相关推荐

    C#通过post提交json字符串

    - **构造请求体**:将JSON字符串转换成字节数组,设置到`ContentLength`属性,并写入到请求流中。 - **发送请求**:调用`GetResponse()`方法发送请求并获取响应。 - **处理响应**:从响应流中读取响应数据并返回。 ...

    基于JSON实现传输byte数组过程解析

    JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,广泛用于服务器与客户端之间的数据传递,因为它的结构清晰、易于阅读和编写,同时也方便机器解析和生成。然而,JSON本身并不直接支持二进制数据的...

    java http 发送xml报文

    - **发送数据**:将之前构建的XML字符串转换为字节数组,并通过`DataOutputStream`写入到连接的输出流中,完成数据的发送。 - **接收响应**:通过`BufferedReader`读取服务器的响应,将读取的每一行追加到`...

    json 数据解析包

    总结来说,这些Java库为处理JSON数据提供了强大的工具,从解析JSON字符串到创建和操作JSON对象,再到序列化回字符串,整个过程都得到了很好的支持。它们的结合使用大大简化了开发人员的工作,提高了开发效率。

    利用报文传递数据时,c语言的密钥加密与解密

    根据给定的文件信息,我们可以总结出以下关于“利用报文传递数据时,C语言的密钥加密与解密”的相关知识点。 ### 一、程序背景及用途 本程序主要展示了如何在C语言中实现简单的字符加密过程。该程序通过用户输入一...

    VxWorks多线程串口解析GPS的应用.pdf

    - 分割字符串:GPGGA报文由逗号分隔的数据字段组成,通过遍历字符数组并按逗号切割,得到各个字段。 - 数据转换:将字符串字段转换为数值类型,如将经纬度从度分秒格式转换为十进制度。 - 错误检查:检查报文的...

    socket交易报文传输(包含文件传输和字段传输)

    客户端和服务器在发送和接收数据时,需要进行byte数组和实际对象(如字符串、文件内容等)之间的转换。 总结一下,Socket交易报文传输涵盖了以下核心知识点: 1. Socket接口:作为网络通信的基础,提供发送和接收...

    json生成与解析示例

    `org.json`库提供了一个简单的API来创建和解析JSON对象,而`com.google.gson`库则是Google提供的一个更强大、更灵活的JSON库,能够将Java对象转换为JSON字符串,反之亦然。 1. `org.json`库的使用: - JSON对象:...

    Json解析工具

    1. **颜色编码**:将不同类型的JSON值(如字符串、数字、布尔值、对象、数组等)用不同的颜色高亮,使数据更易区分。 2. **折叠/展开**:允许用户折叠或展开JSON对象和数组,以控制显示的详细程度,方便查看特定部分...

    java实现http请求以及解析json与java对象转换 项目源代码实例

    项目源代码可能会包含如何创建JSON对象、解析JSON字符串、映射到Java对象以及处理JSON数组的例子。 具体到这个"java实现http请求以及解析json与java对象转换"项目,你可以期待以下几个关键知识点: 1. **HTTP请求*...

    JSON数据可视化转换

    JSON格式遵循键值对(key-value pairs)的结构,可以表示复杂的数据结构,包括数组、对象、数字、字符串等。 1. JSON基本语法: - 对象:由花括号 `{}` 包围,内部是键值对的集合,键和值之间用冒号 `:` 分隔,...

    Oracle解析复杂json的方法实例详解

    你可以通过解析JSON字符串,查找特定的键和值,然后提取所需的信息。这种方法可能会更繁琐,尤其是在处理数组和嵌套结构时。 总结来说,Oracle处理复杂JSON的方法主要依赖于扩展其内置功能,如通过Java桥接或者等待...

    C语言的JSON解析库:cJSON 1.7.15函数说明(含 mongoose ,可用于测试POST和GET请求,纯C实现)

    - 添加和修改值:通过`cJSON_AddItemToObject`、`cJSON_AddNumberToObject`、`cJSON_AddStringToObject`等函数,可以向JSON对象添加各种类型的值,包括字符串、数字、布尔值、数组等。 - 解析JSON字符串:`cJSON_...

    Java解析json数据,方法不需要修改传json参数就行了

    在压缩包中的`java解析json字符串.docx`和`java解析json字符串.pdf`文档中,可能包含了更详细的操作示例和步骤,包括如何处理嵌套的JSON对象、数组以及异常处理等。对于复杂JSON数据的解析,你可能需要理解JSON路径...

    3762报文生成.rar_C#_

    这可能涉及到字符串拼接、二进制数组操作等。 6. **报文解析**:除了生成报文,还需要能够解析接收到的376.2报文,验证其格式正确性并提取其中的数据。这通常与生成报文的过程相反,通过定义匹配的解码规则对报文...

    PB调用http api接口 PB解析json

    PB提供了一些内建函数和类来处理JSON,如JsonObject和JsonArray,它们允许你解析JSON字符串并访问其包含的数据。例如,你可以使用JsonParse函数将JSON字符串转换为一个解析对象,然后通过对象的属性和方法遍历JSON树...

    ios json测试demo

    - 理解JSON的基本结构和规则,包括键值对、数组、字符串、数字等。 - 学习`NSJSONSerialization`的使用,包括序列化和反序列化。 - 掌握网络请求的基础知识,如URLSession或第三方库如Alamofire的使用。 - 熟悉...

    jsonviewer(汉化中文版)

    JSON报文通常以文本形式存在,包含键值对,其中键是字符串,值可以是各种类型,包括字符串、数字、布尔值、数组、对象以及null。JSONViewer会将这些数据以树形结构展示,使层次关系一目了然。每一层的键会显示为节点...

    windows平台简单的http_client实现POST-GET方法C语言实现

    这可能涉及字符串分割、查找特定头部字段,以及可能的JSON或XML解析。 以上是实现一个简单的Windows平台HTTP客户端所需的关键知识点,无论选择使用libcurl库还是直接使用Winsock API,都需要对HTTP协议有深入理解,...

    563WEB配置说明1

    7. Html网页内容:程序的HTML网页使用HTML5、CSS3和JavaScript编写,内容以字符串形式存储在单片机的Flash内存中,而图片等静态资源则以十六进制数组常量保存。 8.URL资源文件的发送策略:563在发送URL资源时有两种...

Global site tag (gtag.js) - Google Analytics