准备条件
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.76</version> <!-- 指定您需要的 FastJSON 版本 -->
</dependency>
@Test
void test6() {
// 创建 JSON 对象
JSONObject jsonObject = new JSONObject();
// 创建内存选项的数组
JSONArray memoryArray = new JSONArray();
memoryArray.add("2G");
memoryArray.add("4G");
// 创建颜色选项的数组
JSONArray colorArray = new JSONArray();
colorArray.add("红色");
// 将内存选项数组和颜色选项数组放入 JSON 对象中
jsonObject.put("内存", memoryArray);
jsonObject.put("颜色", colorArray);
// 输出 JSON 格式的字符串
System.out.println(jsonObject.toJSONString());
}
@Test
void test8(){
ScSpecs scSpecs = scSpecsMapper.selectById(1);
String productSpecs = scSpecs.getProductSpecs(); // 字符串json格式
Map<String, List<String>> maps = (Map) JSON.parse(productSpecs);
// 使用流(Stream)遍历 Map 中的键值对
maps.entrySet().stream().forEach(entry -> {
String key = entry.getKey();
List<String> values = entry.getValue();
System.out.println(key + ": " + values);
});
}
Json key value
// json key value
@Test
void test5() {
int id = 1;
JSONObject jsonObject = new JSONObject(); // 创建 JSON 对象
// 根据id从数据库中获取ScCategories对象
ScCategories scCategories = scCategoriesMapper.selectById(id);
// 根据ScCategories对象的id查询对应的ScAttributeKey对象列表
List<ScAttributeKey> scAttributeKeys = scAttributeKeyMapper.selectList(new LambdaQueryWrapper<ScAttributeKey>()
.eq(ScAttributeKey::getCategoriesId, scCategories.getId()));
// 遍历ScAttributeKey对象列表
scAttributeKeys.forEach(record -> {
// 根据ScAttributeKey对象的id查询对应的ScAttributeValue对象列表
List<ScAttributeValue> scAttributeValues = scAttributeValueMapper.selectList(new LambdaQueryWrapper<ScAttributeValue>()
.eq(ScAttributeValue::getAttributeId, record.getId()));
// 创建属性值的 JSONArray
JSONArray attributeValuesArray = new JSONArray();
// 遍历ScAttributeValue对象列表
scAttributeValues.forEach(value -> {
// 添加属性值到 JSONArray 中
attributeValuesArray.add(value.getAttributeValue());
});
// 将属性名和对应的属性值 JSONArray 放入 JSON 对象中
jsonObject.put(record.getAttributeName(), attributeValuesArray);
});
// 输出 JSON 格式的字符串
System.out.println(jsonObject.toJSONString());
}
数组 Key Value
@Test
void test4() {
ArrayList<ArrayList<String>> srt = new ArrayList<>(); // [[颜色,红色][尺寸,小]]
List<ScCategories> scCategories = scCategoriesMapper.selectList(null);
scCategories.forEach(record -> {
List<ScAttributeKey> scAttributeKeys = scAttributeKeyMapper.selectList(new LambdaQueryWrapper<ScAttributeKey>().eq(ScAttributeKey::getCategoriesId, record.getId()));
scAttributeKeys.forEach(reo -> {
List<ScAttributeValue> scAttributeValues = scAttributeValueMapper.selectList(new LambdaQueryWrapper<ScAttributeValue>().eq(ScAttributeValue::getAttributeId, reo.getId()));
// 假设每个 ScAttributeKey 对象只包含一个 ScAttributeValue 对象
scAttributeValues.forEach(ro -> {
ArrayList<String> pair = new ArrayList<>();
pair.add(reo.getAttributeName());
pair.add(ro.getAttributeValue());
srt.add(pair);
});
});
});
buildMenuTree(scCategories);
System.out.println(srt);
System.out.println(scCategories);
}