1:Json是一种轻量级的数据交换方式, 一般情况下 它的数据格式是有两种, 一种就是:依key : value的形式 存在的无序的
jsonObject对象,就是简单地将对象装在 花括号里面 从而实现我们的数据格式。键值对的格式存储。 key和value之间使用冒号:来分割。
对象之间使用,来分割。
key是String格式的数据。 但是我们的value则可以使String number Object(对象) array(数组)
注意 我们
例如:{"name": "xiaoluo"}, 这就是一个最简单的json对象,
每个键值对其实就是一个对象。
值的类型如下:
另一种数据格式就是有序的value的集合,这种形式被称为是jsonArray,数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。
这个地方就是我们的数据 全部是以数组的格式存在;
例子如下:
首先我们需要借助第三方来实现我们解析数据
下面一个小例子 来说明 我们如何实现:
我们最常用的两个类就是 JSONObject和JSONArray这两个类,分别代表了json对象和json数组,
public class Person
{
private int id;
private String name;
private String address;
public Person()
{
}
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getAddress()
{
return address;
}
public void setAddress(String address)
{
this.address = address;
}
public Person(int id, String name, String address)
{
super();
this.id = id;
this.name = name;
this.address = address;
}
@Override
public String toString()
{
return "Person [id=" + id + ", name=" + name + ", address=" + address
+ "]";
}
}
上面我们先定义了一个javabean 随后我们对象转化为json对象 然后再将这个json对象反序列化成我们的Person对象。
我们先定义一个JsonTools类,这个类有两个静态方法,我们可以通过这两个方法来得到一个JSON类型的字符串对象,以及一个JSON对象
public class JsonTools
{
/**
* 得到一个json类型的字符串对象
* @param key
* @param value
* @return
*/
public static String getJsonString(String key, Object value)
{
JSONObject jsonObject = new JSONObject();
//put和element都是往JSONObject对象中放入 key/value 对
// jsonObject.put(key, value);
jsonObject.element(key, value);
return jsonObject.toString();
}
/**
* 得到一个json对象
* @param key
* @param value
* @return
*/
public static JSONObject getJsonObject(String key, Object value)
{
JSONObject jsonObject = new JSONObject();
jsonObject.put(key, value);
return jsonObject;
}
}
我们可以直接通过 JSONObject jsonObject = new JSONObject(); 这个方法就可以得到一个json对象,然后通过element()或者是put()方法来给我们的json对象添加key/value对。我们先来看看第一个例子,实现一个简单的Person对象和json对象的转换
Person person = new Person(1, "xiaoluo", "广州"); // 将Person对象转换成一个json类型的字符串对象 String personString = JsonTools.getJsonString("person", person); System.out.println(personString.toString());
整个外面的大括号是一个json对象,里面有一对key/value,其中里面的{"address":"广州","id":1,"name":"xiaoluo"}就是我们转换成的json字符串对象
再来看看如何将json对象转换成我们的bean对象
JSONObject jsonObject = JsonTools.getJsonObject("person", person); // 通过JSONObject的toBean方法可以将json对象转换成一个javabean JSONObject personObject = jsonObject.getJSONObject("person"); Person person2 = (Person) JSONObject.toBean(personObject, Person.class); System.out.println(person2);