当前位置:首页 > 开发 > 移动开发 > 正文

pull解析和json编码

发表于: 2015-03-14   作者:百合不是茶   来源:转载   浏览:
摘要: n.json文件: [{name:java,lan:c++,age:17},{name:android,lan:java,age:8}]   pull.xml文件 <?xml version="1.0" encoding="utf-8"?> <stu>     <name>java

n.json文件:

[{name:java,lan:c++,age:17},{name:android,lan:java,age:8}]

 

pull.xml文件

<?xml version="1.0" encoding="utf-8"?>

<stu>

    <name>java</name>

    <age>20</age>

    <sex>男</sex>

</stu>

<stu>

    <name>android</name>

    <age>23</age>

    <sex>女</sex>

</stu>

 

 

解析pull.xml和json

 

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

	}

	public void parse(View view) {
		// 创建xml解析器
		try {
			// 设置解析器
			// XmlPullParser parser = XmlPullParserFactory.newInstance()
			// .newPullParser();
			XmlPullParser parser = Xml.newPullParser();
			// 设置解析的数据源
			InputStream ips = this.getAssets().open("pull.xml");
			// 设置解析格式
			parser.setInput(ips, "UTF-8");

			// 设置解析时,可能触发的事件类型
			int type = parser.getEventType();
			while (type != XmlPullParser.END_DOCUMENT) {
				switch (type) {
				case XmlPullParser.START_DOCUMENT:

					break;
				case XmlPullParser.START_TAG:
					// 获取元素的名字
					String name = parser.getName();

					if (name.equals("name")) {
						String str = parser.nextText();
						System.out.println(str);
					} else if (name.equals("age")) {
						String age = parser.nextText();
						System.out.println(age);
					} else if (name.equals("sex")) {
						String sex = parser.nextText();
						System.out.println(sex);
					}

					break;
				case XmlPullParser.END_TAG:

					break;

				}
				type = parser.next();
			}

		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	// json解析数据
	public void JosnParse(View view) {
		switch (view.getId()) {
		case R.id.josnBtn:
			try {
				// 使用Json解析数据
				InputStream is = this.getAssets().open("n.json");
				byte[] by = new byte[is.available()];
				is.read(by);

				String josnStr = new String(by);

				// 定义解析器
				JSONTokener tokener = new JSONTokener(josnStr);
				// 获取json的数据
				JSONArray array = (JSONArray) tokener.nextValue();

				for (int i = 0; i < array.length(); i++) {
					// 将获取的到数组转化成对象
					JSONObject obj = (JSONObject) array.get(i);
					// 解析出对象属性的值
					String name = obj.getString("name");
					String lan = obj.getString("lan");
					String age = obj.getString("age");
					System.out.println(name + "<><>" + lan + "<><>" + age);
				}

			} catch (Exception e) {
				e.printStackTrace();
			}
			break;

		}
	}

}

 

pull解析和json编码

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
Json:解析过程和解析原理以及与XML的对比(这里讲的挺详细的:http://blog.csdn.net/onlyonecoder/a
【定义XML解析的工具类---MyXMLPullUtil.java】 import java.io.InputStream; import java.util.Arr
ull解析XML文件的方式与SAX解析XML文件的方式大致相同,他们都是基于事件驱动的。所以,利用pull解
上图为最终效果图。 代码结构示意图: 我们先来看看代码: main.xml + expand source view plain co
本文讲述: 用pull 方式解析xml ,需要导入 kxml2-2.2.2.jar 包 。 这种解析方法很简单,只用到 3个
1、Pull概述 Android系统中和创建XML相关的包为org.xmlpull.v1,在这个包中不仅提供了用于创建XML的
1.要解析的xml文件 <?xml version="1.0" encoding="utf-8"?> <infos> <city id="1"&
XmlPull和Sax类似,是基于流(stream)操作文件,然后根据节点事件回调开发者编写的处理程序。因为
XmlPull和Sax类似,是基于流(stream)操作文件,然后根据节点事件回调开发者编写的处理程序。因为
XmlPull和Sax类似,是基于流(stream)操作文件,然后根据节点事件回调开发者编写的处理程序。因为
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号