【发布时间】:2020-12-04 15:38:09
【问题描述】:
我有一个 JSON 字符串,我使用下面的 GSON 库将其转换为 JSON:
Gson g = new Gson();
String json = "{\"user\":\"c8689ls8-7da5-4ac8-8afa-5casdf623302\",\"pass\":\"22Lof7w9-2b8c-45fa-b619-12cf27dj386\"}";
DataOutputStream out = new DataOutputStream(connection.getOutputStream());
out.writeBytes(g.toJson(json));
out.flush();
out.close();
但是,当我发送实际的发布请求时,我收到以下错误消息:
{"message":"Invalid JSON: Unexpected string literal\n at [Source: UNKNOWN; line: 1, column: 108]","_links":{"self":{"href":"/endpoint","templated":false}}}
我不确定我的 JSON 字符串有什么问题,因为它看起来格式正确,后来转换为 JSON。这个错误的原因是什么?
【问题讨论】:
-
我认为
22Lof7w9-2b8c-45fa-b619-12cf27dj386也必须用引号引起来。 ("22Lof7w9-2b8c-45fa-b619-12cf27dj386") -
@JCWasmx86 我编辑了上面的代码,让它用引号引起来,但我仍然得到同样的错误
-
什么是
g?为了获得更好的帮助,发布minimal reproducible example(最少的代码 - 没有任何不相关的部分,但仍然完整 - 因此我们可以将其复制并粘贴到我们的机器上,无需任何修改运行它以获得完全相同的问题有问题的描述)。 -
@Pshemo 如描述中所述,我使用 GSON 库将字符串转换为 json。 g 只是 GSON 的一个新实例。更新代码使其更清晰
-
但是你能澄清一下你想在这里做什么吗?有问题你已经有 JSON 字符串(我假设你的 API 应该发送给客户端),那么你想在
g.toJson(json)上实现什么?您希望out.writeBytes(..)准确发送什么?
标签: java json parsing post gson