【发布时间】:2021-03-01 23:04:34
【问题描述】:
我有两个主要的模型类:Customer 和 Product
public class Customer {
String name;
String surname;
int age;
BigDecimal cash;
}
public class Product {
String name;
Category category;
BigDecimal price;
}
我想用Map<Customer, List<Product>> 构建json 文件
当我使用正确的方法写入 json 文件数据时 - 我确信这一点 - json 文件显示此语法
{
"Customer{name\u003d\u0027Custo1\u0027, surname\u003d\u0027Surname\u0027, age\u003d18, cash\u003d1200}": [
{
"name": "prod1",
"category": "CLOTHES",
"price": 12000
},
{
"name": "prod2",
"category": "ELECTRONIC",
"price": 15000
}
]
}
然后当我想读取这个文件时,出现错误Exception in thread "main" java.util.NoSuchElementException: No value present,所以我认为json文件中的Customer语法无法识别。
所以我尝试使用下面的语法自行将数据写入json 文件,但它不起作用
[
{
"name": "Abc",
"surname": "Def",
"age": 14,
"cash": "2000"
}
:
[
{
"name": "prod1",
"category": "CLOTHES",
"price": 12000
},
{
"name": "prod2",
"category": "ELECTRONIC",
"price": 15000
}
]
]
json转换方法:
public void toJson(final T item) {
try (FileWriter fileWriter = new FileWriter(jsonFilename)) {
fileWriter.write(gson.toJson(item));
} catch (Exception e) {
throw new ValidatorException(e.getMessage());
}
}
【问题讨论】:
-
第一个 JSON 写的看起来坏了,而第二个“JSON”不是一个,这是无效的语法
-
@ETO 首先我尝试编写自己的语法,但它没有用,所以我使用我的
toJson方法自动编写此文件并查看它的语法,但如您所见,坏了,帖子里有我的toJson方法 -
@Tom 你能告诉我正确的语法吗?
-
您需要将您的产品列表存储在 Customer 中。