【发布时间】:2020-06-10 11:40:51
【问题描述】:
我有一个 JSON 对象,我插入到我的 MySQL 数据库中。
ps = con.prepareStatement("INSERT INTO tableA(a, b, c, d_json)" +
" VALUES(?,?,?,cast(? AS JSON))", Statement.RETURN_GENERATED_KEYS);
// some code
ps.setObject(4, jsonValue);
我插入一个字符串的哈希映射为:
Map<String, String> map = new HashMap<String, String>();
map.put("key", "value");
map.put("key1", "value1");
map.put("key2", "value2");
然而 json 被编码如下:
'"base64:type15:rO0ABXNyABFqYXZhLnV0aWwuSGFzaE1hcAUH2sHDFmDRAwACRgAKRvckkACXRocmVz\naG9sZHhwP0AAAAAAAAAx3CAAAABAAABnZhbHVlMXQABGtleTJ0AAZ2YWx1ZTJ0\nAANrZXl0AAV2YWx1ZXg>
我想插入一个字符串而不是这个。 我在 S.O 上看到了一些帖子,但我没有找到任何合适的方法来解决它。任何帮助,将不胜感激。 谢谢!
【问题讨论】:
-
那么
map是你的json'Value吗?您在帖子中显示的 base64 包含许多不可打印的字节,它不是map的 JSON 表示形式 -
是的。事实上,我的问题是,即使我尝试使用在线工具对其进行解码,它也会返回一些没有任何意义的东西。
-
this 有帮助吗?
-
没有那么多,因为我使用了 sql 方法:cast as json。实际上,我不想过多地转换我的数据,这就是为什么我只是使用哈希图而不是 JSON 对象。
-
但这显然不起作用,我想知道 SQL 应该如何知道如何将 Java 对象转换为 JSON。
标签: java mysql json jdbc base64