以解析转换成此种字符串为例
jsonObject ==>> {"name":"Mr.wang","sex":"男"};
jsonArray ==>> [{"name":'Mr.wang","sex":"男"},{"name":"Mr.zhang","sex":"女"}];
json ==>> {"list":[{"name":"Mr.wang","sex":"男"},{"name":"Mr.zhang","sex":"女"}],"status":"success"};
我们需要定义2个实体
一个是实体, 对解析 示例中 jsonObject 和 jsonArray 解析是所用
另一个,对解析 示例中 json 解析是所用
实体中的属性名 必须与 需要解析的Json串中的 key 对应
如
Json'Objent ==>> {"name":"Mr.wang","sex":"man"}
需要一个实体类 ,里面的属性是 name , sex;
</pre><pre name="code" class="java">public class User {
private String name;
private String sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return "name = " + name + ", sex = " + sex;
}
}
</pre><p></p><p>解析示例中 json 所用</p><p><pre name="code" class="java">public class Entity {
private String status;
private ArrayList<User> list;
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public ArrayList<User> getList() {
return list;
}
public void setList(ArrayList<User> list) {
this.list = list;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "status = " + status + " , list = " + list;
}
}
解析成Bean对象 与 转换成Json串
</pre><pre name="code" class="java">public class TestJson {
<span style="white-space:pre"> </span>private static String jsonObject = "{'name':'Mr.wang','sex':'男'}";
<span style="white-space:pre"> </span>private static String jsonArray = "[{'name':'Mr.wang','sex':'男'},{'name':'Mr.zhang','sex':'女'}]";
<span style="white-space:pre"> </span>private static String json = "{'list':[{'name':'Mr.wang','sex':'男'},{'name':'Mr.zhang','sex':'女'}],'status':'success'}";
<span style="white-space:pre"> </span>private static Entity entity;
<span style="white-space:pre"> </span>private static User user;
<span style="white-space:pre"> </span>private static ArrayList<User> list;
<span style="white-space:pre"> </span>private static Gson gson = new Gson();
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>public static void main(String[] args) {
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>//解析 jsonObject
<span style="white-space:pre"> </span>user = gson.fromJson(jsonObject, User.class);
<span style="white-space:pre"> </span>System.out.println("JsonObject to User : \n" + user.toString() + "\n");
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>//解析 jsonArray
<span style="white-space:pre"> </span>list = gson.fromJson(jsonArray, new TypeToken<ArrayList<User>>() {}.getType());
<span style="white-space:pre"> </span>System.out.println("JsonArray to ArrayList<User> : \n" + list.toString() + "\n");
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>//解析 json
<span style="white-space:pre"> </span>entity = gson.fromJson(json, Entity.class);
<span style="white-space:pre"> </span>System.out.println("JsonObject to Entity : \n" + entity.toString() + "\n");
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>//==========================================
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>//User 转换成 jsonObject
<span style="white-space:pre"> </span>String jsonObjStr = gson.toJson(user);
<span style="white-space:pre"> </span>System.out.println("User to JsonObject : \n" + jsonObjStr + "\n");
<span style="white-space:pre"> </span>//ArrayList<User> 转换成 jsonArray
<span style="white-space:pre"> </span>String jsonAryStr = gson.toJson(list);
<span style="white-space:pre"> </span>System.out.println("ArrayList<User> to JsonArray : \n" + jsonAryStr + "\n");
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>//Entity转换成 json
<span style="white-space:pre"> </span>String json = gson.toJson(entity);
<span style="white-space:pre"> </span>System.out.println("Entity to Json : \n" + json + "\n");
<span style="white-space:pre"> </span>}
}
</pre><p></p><p>转换结果 输出</p><pre name="code" class="java">JsonObject to User :
name = Mr.wang, sex = 男
JsonArray to ArrayList<User> :
[name = Mr.wang, sex = 男, name = Mr.zhang, sex = 女]
JsonObject to Entity :
status = success , list = [name = Mr.wang, sex = 男, name = Mr.zhang, sex = 女]
------------------------------------------------------------------------------------------------------------
User to JsonObject :
{"name":"Mr.wang","sex":"男"}
ArrayList<User> to JsonArray :
[{"name":"Mr.wang","sex":"男"},{"name":"Mr.zhang","sex":"女"}]
Entity to Json :
{"status":"success","list":[{"name":"Mr.wang","sex":"男"},{"name":"Mr.zhang","sex":"女"}]}<span style="font-family:Arial, Helvetica, sans-serif;"><span style="white-space: normal;">
</span></span>
</pre><pre>