データストレージ(三)

2553 ワード

前回のJSONはローカルストレージに使用され、この期は主にJSONデータ解析、今期解析用のGoogleである.gsonパッケージ
メインウィンドウ:MainActivity.java
package com.example.json_05;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity  implements OnClickListener{

	private Button myButton = null;
	private String jsonData = "[{\"name\":\"xiebangyuan\",\"age\":21},{\"name\":\"zhaochao\",\"age\":24}]";
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		myButton = (Button)findViewById(R.id.myButton);
		myButton.setOnClickListener(this);
	}

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

	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		JsonUtils jsonUtils = new JsonUtils();
		jsonUtils.parse(jsonData);
	}

}

JsonUtils.java
package com.example.json_05;

import java.lang.reflect.Type;
import java.util.Iterator;
import java.util.LinkedList;


import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

public class JsonUtils {

	public void parse(String jsonData){
		/*Gson gson = new Gson();
		User user = gson.fromJson(jsonData, User.class);
		System.out.println("name---->"+user.getName());
		System.out.println("age----->"+user.getAge());*/
		
		Type listType =  new TypeToken<LinkedList<User>>(){}.getType();
		Gson gson = new Gson();
		LinkedList<User> users = gson.fromJson(jsonData, listType);
		for (Iterator iterator = users.iterator(); iterator.hasNext();) {
			User user = (User) iterator.next();
			System.out.println("name---->"+user.getName());
			System.out.println("age----->"+user.getAge());
		}
	}
}

Userクラス
package com.example.json_05;

public class User {

	private String name;
	private int age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	
}
android 3.0以降android SDKはJSONデータを解析するために独自のJsonReaderクラスを持つ.この例で使用するgoogleが提供するAPI.