Json和xml的拼接和解析

package com.minimax.jsonparsedemo;

import java.io.StringWriter;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Set;

import org.json.JSONArray;
import org.json.JSONObject;
import org.xmlpull.v1.XmlSerializer;

import android.app.Activity;
import android.os.Bundle;
import android.util.Xml;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {
    private TextView tv;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		tv=(TextView) findViewById(R.id.tv);
		try {
			//Json字符串的解析
			String json="[{‘patient_id‘:‘122331‘,‘visit_id‘:‘1231‘},{‘patient_id‘:‘122332‘,‘visit_id‘:‘1232‘},{‘patient_id‘:‘122333‘,‘visit_id‘:‘1233‘}]";
			JSONArray array=new JSONArray(json);
			for(int k=0;k<array.length();k++){
				JSONObject o=(JSONObject) array.get(k);
				String patient_id=o.getString("patient_id");
				String visit_id=o.getString("visit_id");
				System.out.println("patient_id.."+patient_id+"..visit_id.."+visit_id);
			}
			HashMap<String,String> map=new HashMap<String, String>();
			map.put("101", "2000001");
			map.put("102", "2000001");
			map.put("103", "2000001");
			map.put("104", "2000001");
			map.put("105", "2000001");
			map.put("106", "2000001");
			map.put("107", "2000001");
			map.put("108", "2000001");
			map.put("109", "2000001");
//			String str=getXMLSendData(map);
			String str=getJsonSendData(map);
			System.out.println("str..."+str);
//			Toast.makeText(this, str, Toast.LENGTH_LONG).show();
			tv.setText(str);
		} catch (Exception e) {
			// TODO: handle exception
		}
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	public String getJsonSendData(HashMap<String, String> map){
		//Map集合中键是patient_id  值是visit_id
		// [{‘patient_id‘,‘120‘,‘visit_id‘,‘11122‘},{},{}]
		StringBuffer requestJson=new StringBuffer();
		requestJson.append("[");
		Set<Entry<String, String>> set=map.entrySet();
		Iterator<Entry<String, String>> ito=set.iterator();
		while(ito.hasNext()){
			  Entry<String, String> entry=ito.next();
		      String patient_id=entry.getKey();
		      String visit_id=entry.getValue();
		      requestJson.append("{");
		      requestJson.append("‘");
		      requestJson.append("patient_id");
		      requestJson.append("‘");
		      requestJson.append(":");
		      requestJson.append("‘");
		      requestJson.append(patient_id);
		      requestJson.append("‘");
		      requestJson.append(",");
		      requestJson.append("‘");
		      requestJson.append("visit_id");
		      requestJson.append("‘");
		      requestJson.append(":");
		      requestJson.append("‘");
		      requestJson.append(visit_id);
		      requestJson.append("‘");
		      requestJson.append("}");
		      requestJson.append(",");
		}
		int location=requestJson.lastIndexOf(",");
		requestJson.deleteCharAt(location);
		requestJson.append("]");
		return requestJson.toString();
	}

	public String getXMLSendData(HashMap<String, String> map){
		//Map集合中键是patient_id  值是visit_id
		String requestXML="";
		try {
			Set<Entry<String, String>> set=map.entrySet();
			Iterator<Entry<String,String>> ito=set.iterator();
			StringWriter writer=new StringWriter();
			XmlSerializer serializer=Xml.newSerializer();
			serializer.setOutput(writer);
			serializer.startDocument("GBK", true);
			serializer.startTag(null, "patients");
			while(ito.hasNext()){
				  Entry<String, String> entry=ito.next();
			      String patient_id=entry.getKey();
			      String visit_id=entry.getValue();
			      //在这块进行两种可能的操作  xml json
			      serializer.startTag(null, "patient_id");
			      serializer.text(patient_id);
			      serializer.endTag(null,"patient_id");
			      serializer.startTag(null, "visit_id");
			      serializer.text(visit_id);
			      serializer.endTag(null,"visit_id");
			      
			}
			serializer.endTag(null, "patients");
			serializer.endDocument();
			requestXML=writer.toString();
		} catch (Exception e) {
			// TODO: handle exception
		}
		return requestXML;
	}

}
时间: 2024-10-11 07:18:41

Json和xml的拼接和解析的相关文章

Json vs Xml

两者的共同优点是都是文本表示的数据格式,可以跨平台.跨系统交换数据. 就可读性和可扩展性而言,JSON和XML不相上下. 就编码难度而言,JSON略比XML简单,要写好XML最好还是借助XML编辑器,标签的嵌套和配对手动输入来说容易出错.因此,从代码的可维护性角度而言,JSON优于XML. 就内容解析而言,JSON在客户端只要使用eval()便可完成解析,在服务器端有包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, P

多线程与网络之JSON和XML数据的解析

*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } a { color: #4183C4; } a.absent { color: #cc0000; } a.anchor { display: block; padding-left: 30px; margin-left: -30px; cursor: pointer; position: absolute

NSURLSession(Get &amp; Post,JSON、XML数据解析,文件上传下载)

NSURLSession(Get & Post,JSON.XML数据解析,文件上传下载) 一.NSURLSession概述 NSURLSession是iOS7中新的网络接口,支持后台网络操作,除非用户强行关闭. NSURLSession使用步骤: 1. 新建NSURLSessionConfiguration,用于NSURLSession的配置 2. 新建NSURLSession 3. 新建NSURLSessionTask对象 4. 执行task 其中NSURLSessionConfigurati

iOS网络编程开发—JSON和XML数据解析

iOS网络编程开发—JSON解析 一.什么是JSON JSON是一种轻量级的数据格式,一般用于数据交互 服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外) JSON的格式很像OC中的字典和数组 {"name" : "jack", "age" : 10} {"names" : ["jack", "rose", "jim"]} 标准JSON格式的

iOS开发——网络Swift篇&amp;JSON与XML数据解析

JSON与XML数据解析 JSON数据解析(内置NSJSONSerialization与第三方JSONKit) 一,使用自带的NSJSONSerialization 苹果从IOS5.0后推出了SDK自带的JSON解决方案NSJSONSerialization,这是一个非常好用的JSON生成和解析工具,效率也比其他第三方开源项目高. NSJSONSerialization能将JSON转换成Foundation对象,也能将Foundation对象转换成JSON,但转换成JSON的对象必须具有如下属性

iOS-数据持久化基础-JSON与XML数据解析

解析的基本概念 所谓“解析”:从事先规定好的格式串中提取数据 解析的前提:提前约定好格式.数据提供方按照格式提供数据.数据获取方按照格式获取数据 iOS开发常见的解析:XML解析.JSON解析 一.XML数据结构 解析的基本概念 所谓“解析”:从事先规定好的格式串中提取数据 解析的前提:提前约定好格式.数据提供方按照格式提供数据.数据获取方按照格式获取数据 iOS开发常见的解析:XML解析.JSON解析 XML数据结构 XML解析SAX?方式解析从上往下,?一点?一点读取性能好苹果推荐使?用DO

iOS - - JSON 和 XML解析

JSON 和 XML 一.JSON 1.什么是JSON JSON是一种轻量级的数据格式,一般用于数据交互 服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外) 2.JSON的格式很像OC中的字典和数组 {"name" : "jack", "age" : 10} {"names" : ["jack", "rose", "jim"]} 标准JSON

.net Json和Xml解析

引言    Json和Xml是现在跨平台传输数据的主流格式,关于它们的解析,网上资料很多,我稍作整理,写成一个小demo,方便日后使用. JSON解析     能进行json解析的类库有很多,例如JavaScriptSerializer,DataContractJsonSerializer和开源类库Newtonsoft.Json.这里使用Newtonsoft.Json作个演示. 1.定义示例的类 public class Data { public string Name { get; set;

零基础iOS之Json及XML数据解析2

零基础iOS之Json及XML数据解析http://www.cnblogs.com/dingjianjaja/articles/4798604.html