データストレージ(三)
2553 ワード
前回のJSONはローカルストレージに使用され、この期は主にJSONデータ解析、今期解析用のGoogleである.gsonパッケージ
メインウィンドウ:MainActivity.java
JsonUtils.java
Userクラス
メインウィンドウ: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.