我正在使用具有以下代码的服务(我可以更改此代码):
import com.google.gson.JsonObject;
import com.google.gson.Gson;
Gson gson = new Gson();
JsonObject json = new JsonObject();
json.addProperty("customer", gson.toJson(customer));
anotherServiceClient.dispatch(json.toString());
另一个服务类代码有一个调度方法实现,它接受一个String对象,并将其添加到一个json中,其中party是一个String。我不能更改此代码。
JsonObject json = new JsonObject();
json.addProperty("party", inputCustomerJson);
我需要anotherService具有如下输出:
"party": "{\"customer\":\"{\"id\":\"A123\"}"}
而是:
"party": "{\"customer\":\"{\\\"id\\\":\\\"A123\\\"}"}
1条答案
按热度按时间fumotvh31#
问题是这一行:
Gson.toJson
生成一个JSON字符串作为输出("{\"id\":\"A123\"}"
),因此当您稍后再次将此数据序列化为JSON时,反斜杠和双引号将被转义。最有可能的情况是使用
Gson.toJsonTree
和JsonObject.add(String, JsonElement)
: