1、创建一个jsonArray对象。里面包含重复的内容,如图。
2、然后创建一个set集合,因为set集合中的元素不重复具有去重的效果。
3、通过循环把jsonArray对象中的元素都添加到set集合且先输出元对象的内容来看效果。
4、把jsonArray添加到set集合后,从上一步可以看出是3条记录,这里把set集合的长度输出看下它的大小可以发现变小了。
5、再把set集合转成字符串再转换成jsonArray对象。
6、重新使用for循环把新赋值的jsonArray对象值输出就完成了。
java解析json字符串时将大括号中的对应为一个类,里面的数据对应为类的属性,最后用数组接受即可。
示例关键代码如下:
//导入 net.sf.json.JSONArray和net.sf.json.JSONObject 两个jar 包。
String str = "[{name:'a',value:'aa'},{name:'b',value:'bb'},{name:'c',value:'cc'},{name:'d',value:'dd'}]" ; // 一个未转化的字符串。
JSONArray json = JSONArray.fromObject(str ); // 首先把字符串转成 JSONArray 对象。
if(json.size()>0){。
for(int i=0;i<json.size();i++){。
JSONObject job = json.getJSONObject(i); // 遍历 jsonarray 数组,把每一个对象转成 json 对象。
System.out.println(job.get("name")+"=") ; // 得到 每个对象中的属性值。
从json数组中得到相应java数组,如果要获取java数组中的元素,只需要遍历该数组。
数组内容如下:
/**
* 从json数组中得到相应java数组。
* JSONArray下的toArray()方法的使用。
* @param str
* @return
*/
public static Object[] getJsonToArray(String str) { JSONArray jsonArray = JSONArray.fromObject(str);。
return jsonArray.toArray(); }。
3.从json数组中得到java数组,可以对该数组进行转化,如将JSONArray转化为String型、Long型、Double型、Integer型、Date型等等。
4.分别采用jsonArray下的getString(index)、getLong(index)、getDouble(index)、getInt(index)等方法。
5.同样,如果要获取java数组中的元素,只需要遍历该数组。
有两种方法实现:
(1)直接转换:
创建JSONArray对象、JSONObject对象,通过put方法将其数据以键值对的形式填充,如例:
//假如有一个Java实体类Person,包括以下属性:phone、sex、married、address。
ArrayList<Person> persons = new ArrayList<Person>();。
for (int i = 0; i < 3; i++) {。
persons.add(new Person("138******67", "女", true, "北京朝阳区"));//填充Java实体类集合。
JSONArray array = new JSONArray();// Json格式的数组形式。
JSONObject obj;//json格式的单个对象形式。
for (int i = 0; i < persons.size(); i++) {。
obj = new JSONObject();。
//依次填充每一个Java实体对象。
try {
obj.put("phone", persons.get(i).getPhone());//json通过put方式以key-value形式填充。
obj.put("sex", persons.get(i).getSex());。
obj.put("married", persons.get(i).getMarried());。
obj.put("address", persons.get(i).getAddress());。
array.put(obj);//将JSONObject添加入JSONArray。
} catch (JSONException e) {。
e.printStackTrace();。
(2)通过GSON工具实现:
只需要创建GSON对象,通过toJson方法转换即可。如例:
//模拟Java数据
Person person = new Person("敏敏", 23, "女", "北京市海淀区");。
//创建GSON对象
Gson gson = new Gson();。
//调用toJson方法即可转换为字符串的json格式。
String json = gson.toJson(person);。
ArrayList 可以方便的实现列表操作, 但有时候需要建立一个ArrayList数组.。
首先想到的是类似下面的方法:
ArrayList<Integer[] list = new ArrayList<Integer()[N];。
但会出现错误.
改为
ArrayList[] list = new ArrayList[N];会有警告.。
这是因为Java没有范型数组,可以参考以下方法实现类似功能:
ArrayList<ArrayList<Integer als = new ArrayList<ArrayList<Integer ();。
ArrayList<Integer a1 = new ArrayList<Integer();。
ArrayList<Integer a2 = new ArrayList<Integer();。
ArrayList<Integer a3 = new ArrayList<Integer();。