首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

Android开发-Json数据的解析

2013-02-15 
Android开发--Json数据的解析在执行解析数据之前,需要将一个类库应用到你的程序中,下载的地址是:http://co

Android开发--Json数据的解析

在执行解析数据之前,需要将一个类库应用到你的程序中,下载的地址是:

http://code.google.com/p/google-gson/ 

下载解压之后你需要将蓝色标记的文件放入到你的程序之中应用Android开发-Json数据的解析

首先,我们需要知道什么是Json数据:

JSON的定义:
       一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。 – Json.org

说到这里,可能会发现Json数据与XML文件很相似,下面,我们看下它们之间的对比:

1.JSON和XML的数据可读性基本相同
2.JSON和XML同样拥有丰富的解析手段
3.JSON相对于XML来讲,数据的体积小
4.JSON与JavaScript的交互更加方便
5.JSON对数据的描述性比XML较差
6.JSON的速度要远远快于XML


下面,我们看下Android官方文档给出的一个Json的例子:


第一个按钮的作用是利用Google提供的Api解析Json数据,这里给出的是一个数组,具体的实现代码如下:

public class MainActivity extends Activity {/* * 1.开始解析数组 * 2.开始解析对象 * 3.解析键值对(多个) * 4.解析对象结束 * 5.开始解析对象 * 6.解析键值对 * 7.解析对象结束 * 8.解析数组结束 */private String  jsonData="[{\"name\":\"BruceZhang\",\"age\":20},{\"name\":\"ZhangHu\",\"age\":23}]";private String jsonData2="{\"name\":\"BruceZhang\",\"age\":20}";private Button button;private Button button2;private Button button3;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button=(Button)findViewById(R.id.button);button.setOnClickListener(new MyButton());button2=(Button)findViewById(R.id.button2);button2.setOnClickListener(new MyButton());button3=(Button)findViewById(R.id.button3);button3.setOnClickListener(new MyButton());}class MyButton implements OnClickListener{@Overridepublic void onClick(View v) {// TODO Auto-generated method stubswitch (v.getId()) {case R.id.button:jsonArray(jsonData);break;case R.id.button2:userJson(jsonData2);break;case R.id.button3:userJsonArray(jsonData);break;default:break;}}}private void jsonArray(String jsonData) {JsonUtils jsonUtils=new JsonUtils();jsonUtils.parseJson(jsonData);}private void userJson(String jsonData){JsonUtils2 jsonUtils=new JsonUtils2();jsonUtils.parseUserFromJson(jsonData);}private void userJsonArray(String jsonData){JsonUtils3 jsonUtils=new JsonUtils3();jsonUtils.parseUserFromJson(jsonData);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.activity_main, menu);return true;}}


热点排行