1 json 就是一种数据的组拼形式,举个例子:
{"mine":[{"name":"name0","time":"time0"},{"name":"name1","time":"time1"},{"name":"name2","time":"time2"},{"name":"name3","time":"time3"},{"name":"name4","time":"time4"},{"name":"name5","time":"time5"},{"name":"name6","time":"time6"},{"name":"name7","time":"time7"},{"name":"name8","time":"time8"},{"name":"name9","time":"time9"}],"others":[{"name":"name0"},{"name":"name1"},{"name":"name2"},{"name":"name3"},{"name":"name4"}]}
整体结构是{"mine": xxx,"others":xxxx}, 即{jsonObject,jsonObject,...}有两个JsonObject组成。
第一个JsonObject:
"mine":[{"name":"name0","time":"time0"},{"name":"name1","time":"time1"},{"name":"name2","time":"time2"},{"name":"name3","time":"time3"},{"name":"name4","time":"time4"},{"name":"name5","time":"time5"},{"name":"name6","time":"time6"},{"name":"name7","time":"time7"},{"name":"name8","time":"time8"},{"name":"name9","time":"time9"}]
它的key是mine, 它的value是一个JsonArray,呦[]包裹,[]中间放的是一系列的jsonObject,即[jsonObject,jsonObject,.....]
JsonArray的存储形式类似于ListArray,其中存储的对象类型相同,
JsonObject的存储形式类似于Map,有一系列的Key-value组成而value的类型是多种多样的,可以是一个String对象,也可以是一个ArrayList对象
2 如何使用json来完成数据的组拼?
2.1 根据1中介绍的内容,我们完全可以自己组拼出这样一个json格式的数据,。
优点:不需要导入格外的jar包
缺点:很容易出错,标点符号,大括号等等。。
2.2 使用额外的jar包,一共需要六个jar包,分别是:
3 举例:
3.1 组拼出1的的那一串json数据:
public static JSONObject setData(){
JSONObject jsonObject = new JSONObject();
JSONArray jsonArray = new JSONArray();
Mine mine1 = new Mine("name1", "time1");
Mine mine2 = new Mine("name2", "time2");
List<Mine> list = new ArrayList<Mine>();
for(int i=0;i<10;i++){
Mine mine = new Mine("name"+i, "time"+i);
list.add(mine);
}
for(int i=0;i<list.size();i++){
Mine mine = list.get(i);
JSONObject jsonObject2 = new JSONObject();
jsonObject2.put("name", mine.getName());
jsonObject2.put("time", mine.getTime());
jsonArray.add(jsonObject2);
}
JSONArray jsonArray2 = new JSONArray();
List<Others> list2 = new ArrayList<Others>();
for(int i=0;i<5;i++){
Others others = new Others("name"+i);
list2.add(others);
}
for(int i=0;i<list2.size();i++){
Others others = list2.get(i);
JSONObject jsonObject2 = new JSONObject();
jsonObject2.put("name", others.getName());
jsonArray2.add(jsonObject2);
}
jsonObject.put("mine", jsonArray);
jsonObject.put("others", jsonArray2);
System.out.println(jsonObject.toString());
return jsonObject;
}
public static void getData(JSONObject jsonObject){
JSONArray jsonArray = jsonObject.getJSONArray("mine");
for(int i=0;i<jsonArray.size();i++){
JSONObject jsonObject2 = jsonArray.getJSONObject(i);
String name = jsonObject2.getString("name");
String time = jsonObject2.getString("time");
Mine mine = new Mine(name, time);
System.out.println(mine.toString());
}
}
class Mine{
private String name;
private String time;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public Mine(String name, String time) {
super();
this.name = name;
this.time = time;
}
@Override
public String toString() {
return "Mine [name=" + name + ", time=" + time + "]";
}
}
class Others{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Others(String name) {
super();
this.name = name;
}
@Override
public String toString() {
return "Others [name=" + name + "]";
}
}