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; } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。