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;
}
}