一个json字符串数组,怎么把里边重复的数据剔除
时间: 2024-03-06 12:49:12 浏览: 87
可以将 JSON 字符串数组转换为 Java 对象集合,再进行去重操作。具体实现可以按照以下步骤:
1. 将 JSON 字符串数组转换为 Java 对象集合。可以使用 Gson 或者 Jackson 等 JSON 序列化库来实现,示例代码如下:
```java
String[] jsonStringArr = { "{'name': '张三', 'age': 20}", "{'name': '李四', 'age': 21}", "{'name': '张三', 'age': 20}" };
List<Person> personList = new ArrayList<>();
for (String jsonString : jsonStringArr) {
Person person = new Gson().fromJson(jsonString, Person.class);
personList.add(person);
}
```
其中,Person 是一个自定义的 Java 类型,用于存储每个 JSON 字符串对应的对象信息。
2. 对 Java 对象集合进行去重操作。可以使用 HashSet 来实现,示例代码如下:
```java
Set<Person> personSet = new HashSet<>(personList);
```
其中,HashSet 会自动去除集合中的重复元素,因此最终得到的 personSet 就是去重后的结果。
完整示例代码如下:
```java
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import com.google.gson.Gson;
public class Main {
public static void main(String[] args) {
String[] jsonStringArr = { "{'name': '张三', 'age': 20}", "{'name': '李四', 'age': 21}", "{'name': '张三', 'age': 20}" };
List<Person> personList = new ArrayList<>();
for (String jsonString : jsonStringArr) {
Person person = new Gson().fromJson(jsonString, Person.class);
personList.add(person);
}
Set<Person> personSet = new HashSet<>(personList);
System.out.println(personSet);
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
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;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
```
输出结果为:
```
[Person{name='张三', age=20}, Person{name='李四', age=21}]
```
其中,张三的信息只出现了一次,即表示重复的数据已经被去除。
阅读全文