【问题标题】:Need to save JSON in ORMLite and serialize it via Jackson需要在 ORMLite 中保存 JSON 并通过 Jackson 对其进行序列化
【发布时间】:2012-09-29 05:11:08
【问题描述】:

我在一个 JSON 对象上有一个字段。我可以将其保存为字符串,但是当我使用 Jackson 对其进行序列化并将其发送到我的服务器时,JSON 被视为字符串并转义。我想将它作为实际的 JSON 发送。即使字段是字符串,我也让模型上的 getter 和 setter 使用 JSONObject,这让 ORMLite 很高兴,但现在我在使用 Jackson 进行序列化时遇到错误。如何通过 ORMLite 存储 JSON 并通过 Jackson(在 Android 上)以非转义方式发送?

【问题讨论】:

    标签: java android json jackson ormlite


    【解决方案1】:

    如果它已经存储为 JSON 编码的字符串,您不想使用像 Jackson 这样的库——只需按原样编写字符串即可。除非您确实需要以某种方式修改数据,在这种情况下,您需要先解析,然后修改,然后生成为 JSON。

    【讨论】:

    • 我们将 Jackson 用于其他一切。仅仅为了这一个案例而将其撕掉是不简单和痛苦的。
    • 您没有仔细阅读我的回答。我并不是要摆脱 Jackson,而是在这里不应该使用任何库:如果您所做的只是传递 JSON 数据,则没有必要。
    【解决方案2】:

    将字符串转换为 byte[] 并保存为 byte[]。当你把它拉出来时,只需执行new String(bytes) 并将其传递给杰克逊。

    【讨论】:

    • 但它仍然是一个 JSON 字符串,Jackson 会像现在这样逃脱它吗?问题是杰克逊将 json 发送为 {\"key\":\"value\"} 而不是 {"key":"value"}。如果我把它从数据库中拉出来并转换成一个字符串,我不是还在原地踏步吗?
    • 我认为不会。数据库可能是转义引号的原因。我从来没有使用过jackson,但如果它没有到处逃逸,我认为它不会在这里逃逸。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-18
    • 1970-01-01
    • 2020-12-07
    • 2014-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多