读书人

json转对象 gson 使用

发布时间: 2012-10-07 17:28:51 作者: rapoo

json转对象 gson 应用

使用Gson将Java对象转换为JsonGson是Google的一个开源项目,可以将Java对象转换成JSON,也可能将JSON转换成Java对象。Gson里最重要的对象有2个Gson 和GsonBuilder。Gson有2个最基本的方法1) toJson()  转换java 对象到JSON2) fromJson()  转换JSON到java对象注意使用Gson时记得添加第三方类库gson-1.6.jar    main.xml布局文件<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><Button android:id="@+id/btn01"android:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="center_horizontal"android:text="开始解析01"/><Button android:id="@+id/btn02"android:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="center_horizontal"android:text="开始解析02"/><Button android:id="@+id/btn03"android:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="center_horizontal"android:text="开始解析03"/><Button android:id="@+id/btn04"android:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="center_horizontal"android:text="JavaToJson"/><Button android:id="@+id/btn05"android:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="center_horizontal"android:text="把对象的属性转换成json的名字"/></LinearLayout>实体类Userpackage com.ljq.json;import com.google.gson.annotations.SerializedName;public class User {//将java对象的属性转换成指定的json名字@SerializedName("username")private String name;private int age;public User() {super();}public User(String name, int age) {super();this.name = name;this.age = 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;}}工具类JsonUtilspackage com.ljq.json;import java.io.StringReader;import java.lang.reflect.Type;import java.util.Iterator;import java.util.LinkedList;import com.google.gson.Gson;import com.google.gson.reflect.TypeToken;import com.google.gson.stream.JsonReader;public class JsonUtils {public void parseJson01(String jsonData){try {//解析json对象首先要生产一个JsonReader对象JsonReader reader=new JsonReader(new StringReader(jsonData));reader.beginArray();while(reader.hasNext()){reader.beginObject();while(reader.hasNext()){String tagName=reader.nextName();if("name".equals(tagName)){System.out.println("name--->"+reader.nextString());}else if("age".equals(tagName)){System.out.println("age--->"+reader.nextInt());}}reader.endObject();}reader.endArray();} catch (Exception e) {e.printStackTrace();}}public void parseJson02(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());}public void parseJson03(String jsonData){Type listType = new TypeToken<LinkedList<User>>(){}.getType();Gson gson=new Gson();LinkedList<User> users=gson.fromJson(jsonData, listType);for(User user:users){System.out.println("name--->" + user.getName());System.out.println("age---->" + user.getAge());}System.out.println("==================");for (Iterator iterator = users.iterator(); iterator.hasNext();) {User user = (User) iterator.next();System.out.println("name--->" + user.getName());System.out.println("age---->" + user.getAge());}}}JsonActivitypackage com.ljq.json;import com.google.gson.FieldNamingPolicy;import com.google.gson.Gson;import com.google.gson.GsonBuilder;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;public class JsonActivity extends Activity {private Button btn01=null;private Button btn02=null;private Button btn03=null;private Button btn04=null;private Button btn05=null;private String jsonData01 = "[{\"name\":\"Michael\",\"age\":20},{\"name\":\"Mike\",\"age\":21}]";private String jsonData02 = "{\"name\":\"Michael\",\"age\":20}";@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);btn01=(Button)findViewById(R.id.btn01);btn02=(Button)findViewById(R.id.btn02);btn03=(Button)findViewById(R.id.btn03);btn04=(Button)findViewById(R.id.btn04);btn05=(Button)findViewById(R.id.btn05);btn01.setOnClickListener(listener);btn02.setOnClickListener(listener);btn03.setOnClickListener(listener);btn04.setOnClickListener(listener);btn05.setOnClickListener(listener);}View.OnClickListener listener=new View.OnClickListener(){public void onClick(View v) {JsonUtils jsonUtils=new JsonUtils();switch (v.getId()) {case R.id.btn01:jsonUtils.parseJson01(jsonData01);break;case R.id.btn02:jsonUtils.parseJson02(jsonData02);break;case R.id.btn03:jsonUtils.parseJson03(jsonData01);break;case R.id.btn04://把java对象转换成jsonUser user01=new User("linjiqin", 24);Gson gson=new Gson();String obj=gson.toJson(user01);System.out.println(obj);//输出{"name":"linjiqin", "age":24}break;case R.id.btn05://将java对象的属性转换成指定的json名字User user02=new User("lintepeng", 22);Gson gson2=new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE).create();String obj2=gson2.toJson(user02);System.out.println(obj2);//输出{"username":"lintepeng","Age":22}break;}}};}运行结果
?

读书人网 >JavaScript

热点推荐