1,json要解析的文件
{"data":[{"name":"sam","age":18},{"name":"leo","age":19},{"name":"sky","age":20}]};
将该文件可放在raw中文件名是以json 结尾
2,在MainActivity中进行解析
3,新建一个类,用于存放解析后的数据
package com.example.pulljiexi;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.HashMap;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import android.R.xml;
import android.app.Activity;
import android.content.res.Resources;
import android.content.res.XmlResourceParser;
import android.os.Bundle;
import android.util.JsonReader;
import android.util.Xml;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
public class MainActivity extends Activity {
private Button btn_jiexi;
ArrayList<Person> list=new ArrayList<Person>();
Person person=new Person();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
// getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSCREEN ,WindowManager.LayoutParams. FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
btn_jiexi=(Button) findViewById(R.id.btn_jiexi);
btn_jiexi.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
ArrayList<Person3> list=jiexi();
System.out.println("总共有几个"+list.size());
for(int i=0;i<list.size();i++)
{System.out.println("meitiao"+list.get(i));}
}
});
}
private ArrayList<Person3> jiexi() {
// TODO Auto-generated method stub
// String data="{\"data\":[{\"name\":\"sam\",\"age\":\18},{\"name\":\"leo\",\"age\":19},{\"name\":\"sky\", \"age\":\20}]}"; //json3 json array中有object</code>
//JsonReader reader=new JsonReader(new StringReader(data));
// json2 一个数字数组
Reader r=new InputStreamReader(getResources().openRawResource(R.raw.peson));
JsonReader reader=new JsonReader( r);
ArrayList<Person3> list=new ArrayList<Person3>();
try {//找到要解析的文件----data文件
reader.beginObject();
if(reader.hasNext()){
if("data".equals(reader.nextName())){
//解析的是数组----开始解析数组
reader.beginArray();
// 由于数组里有多个对象
while(reader.hasNext())
{ Person3 person=new Person3();
//开始解析每一个对象
reader.beginObject();
//由于每个对象都有不同的属性
while(reader.hasNext()){
String shuxi=reader.nextName();
//如果某个属性是name,则保存在person的name中
if("name".equals(shuxi))
{person.name=reader.nextString();}
//如果某个属性是age,则保存在person的age中
else if("age".equals(shuxi))
{ person.age=reader.nextInt();}
}
// 其中一个对象的属性都已完成
reader.endObject();
//添加到list中
list.add(person);
}
System.out.println("dddd");
//数组都完成
reader.endArray();
}
}
//整个对象完成
reader.endObject();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
}
/**pull解析
// @Override
// public void onClick(View v) {
// // TODO Auto-generated method stub
// //创建pull解析器
// XmlPullParser xrp=Xml.newPullParser();
// //找到解析文件
// InputStream in=getResources().openRawResource(R.raw.jiexi);
// try {
// //设置要解析的文件流
// xrp.setInput(in,"UTF-8");
// } catch (XmlPullParserException e1) {
// // TODO Auto-generated catch block
// e1.printStackTrace();
// }
// StringBuilder sb = new StringBuilder("");
// int counter = 0;
// try {
// // 判断是否到了文件的结尾
// while (xrp.getEventType() != XmlResourceParser.END_DOCUMENT) {
// //文件的内容的起始标签开始,注意这里的起始标签是test.xml文件里面<resources>标签下面的第一个标签
// if (xrp.getEventType() == XmlResourceParser.START_TAG) {
// String tagname = xrp.getName();
// if (tagname.endsWith("customer")) {
// counter++;
// sb.append("这是第" + counter + "客户"+"\n");
// sb.append("姓名:"+xrp.getAttributeValue(0)+"\n");
// sb.append("年龄:"+xrp.getAttributeValue(1)+"\n\n");
//
// }
// }
// // 下面的两个else if什么作用呢?
// else if (xrp.getEventType() == XmlResourceParser.END_TAG) {
// } else if (xrp.getEventType() == XmlResourceParser.TEXT) {
// }
// xrp.next();
// }
// //程序细节注意的地方,StringBuilder要条用toString()方法,不要粗心忘记了
// System.out.println(sb.toString());
// } catch (XmlPullParserException e) {
//
// } catch (IOException e) {
// e.printStackTrace();
// }
// }
//
//
// });
// }
*/