public class XMLparse extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_xmlparse);
}
/***
* 使用 pull 解析 xml文件
*
* @param view
*/
public void xmlPullClic(View view) {
ArrayList<Person> plist = parse();
for (int i = 0; i < plist.size(); i++) {
System.out.print(plist.get(i));
}
}
private ArrayList<Person> parse() {
ArrayList<Person> list = new ArrayList<Person>();
Person p = null;
XmlPullParser pull = Xml.newPullParser();
InputStream in = getResources().openRawResource(R.raw.info);
try {
pull.setInput(in, "utf-8");
int eventType = pull.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_TAG:
String tag = pull.getName();
if ("person".equals(tag)) {
p = new Person();
p.setId(Integer.parseInt(pull.getAttributeValue(null, "id")));
} else if ("name".equals(tag)) {
p.setName(pull.nextText());
} else if ("age".equals(tag)) {
p.setAge(Integer.parseInt(pull.nextText()));
} else if ("sex".equals(tag)) {
p.setSex(pull.nextText());
} else if ("tel".equals(tag)) {
p.setTel(pull.nextText());
} else if ("address".equals(tag)) {
p.setAddress(pull.nextText());
}
break;
case XmlPullParser.END_TAG:
if ("person".equals(pull.getName())) {
list.add(p);
}
break;
}
eventType = pull.next();
}
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return list;
}
}
public class XMLparse extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_xmlparse);
}
/**
* json 解析
*
* @param v
*/
public void jsonRead(View v) {
ArrayList list = jsonread();
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i));
}
}
private ArrayList jsonread() {
String json = "{\"user\": [{\"firstname\": \"ma\", \"lastname\": \"we\", \"name\": \"mail\"}, {\"firstname\": \"zhang\", \"lastname\": \"bin\", \"name\": \"janbin\"}] } }";
ArrayList<ps> pslist = new ArrayList<ps>();
JsonReader jsonReader = new JsonReader(new StringReader(json));
try {
jsonReader.beginArray();
while (jsonReader.hasNext()) {
ps p = new ps();
jsonReader.beginObject();
while (jsonReader.hasNext()) {
String name = jsonReader.nextName();
if ("firstname".equals(name)) {
p.firstname = jsonReader.nextString();
} else if ("lastname".equals(name)) {
p.lastname = jsonReader.nextString();
} else if ("name".equals(name)) {
p.name = jsonReader.nextName();
}
}
jsonReader.endObject();
pslist.add(p);
}
jsonReader.endArray();
} catch (IOException e) {
e.printStackTrace();
}
return pslist;
}
/**
* 生成json 数据
*
* @param v
*/
public void createJSON(View v) {
ArrayList<Person> list = new ArrayList<>();
Person p1 = new Person();
p1.setName("zhang");
p1.setId(1);
p1.setAddress("北京");
p1.setAge(23);
p1.setTel("123456789");
p1.setSex("男");
Person p2 = new Person();
p2.setName("wei");
p2.setId(2);
p2.setAddress("上海");
p2.setAge(25);
p2.setTel("9874561230");
p2.setSex("女");
list.add(p1);
list.add(p2);
JSONObject json = new JSONObject();
JSONArray array = new JSONArray();
try {
for (int i = 0; i < list.size(); i++) {
Person p = list.get(i);
JSONObject obj = new JSONObject();
obj.put("name", p.getName());
obj.put("id", p.getId());
obj.put("age", p.getAge());
obj.put("sex", p.getSex());
obj.put("tel", p.getTel());
obj.put("address", p.getAddress());
array.put(obj);
}
json.put("user", array);
} catch (JSONException e) {
e.printStackTrace();
}
System.out.print(json.toString());
}
/***
* 第三方工具 生成json Gson
*
* @param v
*/
public void Gjson(View v) {
ArrayList<Person> list = new ArrayList<>();
Person p1 = new Person();
p1.setName("zhang");
p1.setId(1);
p1.setAddress("北京");
p1.setAge(23);
p1.setTel("123456789");
p1.setSex("男");
Person p2 = new Person();
p2.setName("wei");
p2.setId(2);
p2.setAddress("上海");
p2.setAge(25);
p2.setTel("9874561230");
p2.setSex("女");
list.add(p1);
list.add(p2);
Gson gson = new Gson();
Type type = new TypeToken<ArrayList<Person>>() {}.getType();
gson.toJson(list, type);
System.out.print(gson.toString());
}
/***
* 第三方工具 解析json Gson
*
* @param v
*/
public void GjsonParse(View v) {
String json = "{\"firstname\": \"ma\", \"lastname\": \"we\", \"name\": \"mail\"}, {\"firstname\": \"zhang\", \"lastname\": \"bin\", \"name\": \"janbin\"}";
Type type = new TypeToken<ArrayList<ps>>() {
}.getType();
Gson gson = new Gson();
ArrayList<ps> list = gson.fromJson(json, type);
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i));
}
}
}