LambdaQueryWrapper jsonarray like
时间: 2023-10-17 16:34:19 浏览: 80
您好!感谢您的提问。
对于 LambdaQueryWrapper,如果您想使用 JSON 数组的 like 查询条件,可以使用 JSON 的字符串表达式进行查询。LambdaQueryWrapper 提供了一个方法 `like`,您可以在该方法中使用 JSON 字符串表达式进行匹配。
例如,假设您有一个表的字段名为 `data`,存储了 JSON 数组数据,您可以使用以下代码进行 like 查询:
```java
List<User> userList = userService.list(new LambdaQueryWrapper<User>()
.like("data", "%\"value\"%"));
```
上述代码中的 `%\"value\"%` 是一个 JSON 字符串表达式,用于匹配 `data` 字段中包含 `"value"` 的 JSON 数组。请注意,在 JSON 字符串表达式中,需要使用转义符 `\` 对双引号 `"` 进行转义。
希望能解答您的问题!如果还有其他疑问,请随时提问。
相关问题
JSONArray加入JSONArray
要将一个JSONArray对象添加到另一个JSONArray对象中,可以使用JSONArray的put方法。下面是一个示例代码:
```java
JSONArray array1 = new JSONArray();
array1.put("item1");
array1.put("item2");
JSONArray array2 = new JSONArray();
array2.put(array1);
System.out.println(array2.toString());
```
这段代码将创建两个JSONArray对象:array1和array2。然后,使用array1的put方法将两个字符串项添加到array1中。最后,使用array2的put方法将array1添加为array2的一个项。最终,我们可以通过调用toString方法来打印array2中的内容。
请注意,这只是一个示例代码,实际使用时需要根据具体情况进行适当的修改。
JSONArray jsonArray 转 map
要将JSONArray jsonArray转换为Map,有三种方法可以选择:
第一种方法是使用toJavaList方法将JSONArray转换为List<JSONObject>,然后使用stream和collectors.toMap方法将List转换为Map。具体代码如下:
JSONArray jsonArray= new JSONArray(); //填充初始数据,此处过程省略
List<JSONObject> jsonObjectList = jsonArray.toJavaList(JSONObject.class);
Map<Integer, String> map = jsonObjectList.stream().filter(Objects::nonNull).collect(Collectors.toMap(item -> item.getInteger("flagType"), item -> item.getString("flagIcon")));
第二种方法是先创建一个空的HashMap<Integer, String>,然后使用forEach方法遍历JSONArray,将每个JSONObject中的flagType和flagIcon添加到HashMap中。具体代码如下:
Map<Integer, String> flagIconMap = new HashMap<>();
JSONArray jsonArray= new JSONArray(); //填充初始数据,此处过程省略
if (jsonArray != null && !jsonArray.isEmpty()) {
jsonArray.forEach(object -> {
if (object == null) {
return;
}
JSONObject jsonObject = (JSONObject) object;
if (jsonObject.getInteger("flagType") == null) {
return;
}
flagIconMap.put(jsonObject.getInteger("flagType"),jsonObject.getString("flagIcon"));
});
}
第三种方法是使用stream和collectors.toMap方法直接将JSONArray转换为Map。具体代码如下:
JSONArray jsonArray= new JSONArray(); //填充初始数据,此处过程省略
Map<Integer, String> map = jsonArray.stream().filter(Objects::nonNull)
.collect(Collectors.toMap(
object -> {
JSONObject item = (JSONObject) object;
return item.getInteger("flagType");
},
object -> {
JSONObject item = (JSONObject) object;
return item.getString("flagIcon");
}
));
以上是三种将JSONArray jsonArray转换为Map的方法,你可以根据自己的需求选择其中一种方法来实现。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [JSONArray转Map的三种实现方式](https://blog.csdn.net/weixin_43075027/article/details/109533803)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文