使用 gson 序列化 json
Posted
技术标签:
【中文标题】使用 gson 序列化 json【英文标题】:serialize a json using gson 【发布时间】:2022-01-01 15:05:50 【问题描述】:我正在使用 com.google.gson.JsonObject 将“参数”内的 json 发送到休息端点。
"parameters":
"
\"customer\" :
\"firstName\": \"Temp\",
\"lastName\": \"Temp\",
\"emailAddresses\": [\"temp1@temp.com\"],
\"address\":
\"street1\": \"123 W Temp St\",
\"city\": \"Temp\",
\"state\": \"Illinois\",
\"zipCode\": \"61122\"
,
\"options\" : [\"tv\"]
"
由于参数是一个 json 字符串,我正在尝试这样做:
JsonObject json = new JsonObject();
json.addProperty("options", ??);
我不确定如何为客户和选项做这件事。 'options' 是一个 java Set,而 customer 是一个对象。
【问题讨论】:
【参考方案1】:你可以使用:
Gson gson = new Gson();
String json = "\"parameters\": \"customer\" ... ";
JsonObject jsonObject = gson.fromJson(json, JsonObject.class);
JsonArray options = new JsonArray();
options.add("tv");
jsonObject.add("options", options);
String output = gson.toJson(jsonObject);
【讨论】:
对于客户java对象,我们可以做jsonObject.add("customer", customerObject)以上是关于使用 gson 序列化 json的主要内容,如果未能解决你的问题,请参考以下文章
使用 GSON 序列化到 JSON 的类是不是应该实现可序列化接口
使用 GSON 序列化时出现“声明多个 JSON 字段命名”错误