JSONArray data = JSONObject.parseObject(builder.toString()).getJSONArray("data"); 使用USER_ID判定用户唯一性,若用户有多条数据,筛选data其JOB_TYPE = 10的数据作为主数据(若用户仅有一条数据,且JOB TYPE != 10 则就以该条数据为主数据.该如何实现呢?
时间: 2024-03-20 13:42:54 浏览: 97
可以按照以下步骤实现:
1. 首先,通过用户ID筛选出所有该用户的数据,存入一个List中。
2. 判断该用户的数据条数,如果只有一条数据且JOB TYPE不为10,则将该条数据作为主数据。
3. 如果该用户的数据条数大于1,则需要筛选出其中JOB TYPE为10的数据作为主数据。可以通过遍历List,依次判断每条数据的JOB TYPE是否为10,如果是则将其设为主数据,然后跳出循环;如果没有找到JOB TYPE为10的数据,则将第一条数据设为主数据。
以下是示例代码:
```java
List<JSONObject> userDataList = new ArrayList<>();
JSONArray dataArray = JSONObject.parseObject(builder.toString()).getJSONArray("data");
for (int i = 0; i < dataArray.size(); i++) {
JSONObject userData = dataArray.getJSONObject(i);
if (userData.getString("USER_ID").equals(userId)) {
userDataList.add(userData);
}
}
JSONObject mainData;
if (userDataList.size() == 1 && userDataList.get(0).getIntValue("JOB_TYPE") != 10) {
mainData = userDataList.get(0);
} else {
mainData = userDataList.get(0);
for (JSONObject userData : userDataList) {
if (userData.getIntValue("JOB_TYPE") == 10) {
mainData = userData;
break;
}
}
}
```
注意,以上代码仅为示例,具体实现可能需要根据实际情况进行修改。
阅读全文