我使用cassandra作为DB,并将用户地址作为JSON存储在User对象的User字段中。
class User {
  private long id;
  private String name;
  private String address;
}然后,DB列中的用户行如下所示
id   |  name  |   address
================================
12345|  jhon  | {"hno":"12-10-46/3","street":"lavella road","city":"begaluru"}但是当我从DB查询User对象并作为REST返回时,我看到Jackson将用户对象转换为JSON。但我注意到,"address"字段是字符串类型,而不是另一个JSON对象。但我希望在客户端将"address“解释为JSON对象。
我怎么能说jackson也将内部string属性转换为JSON?
发布于 2015-04-26 13:29:29
我认为您应该在address字段中使用注释@JsonRawValue。
@JsonRawValue:每个属性标记,可用于指定属性值将按原样包括在序列化的“确切”中,没有转义或修饰--用于在输出中嵌入预序列化的JSON (或任何数据格式)。
https://github.com/FasterXML/jackson-annotations/wiki/Jackson-Annotations
发布于 2015-04-26 13:30:27
它被视为字符串,因为它是字符串。您需要将其转换为对象。由于不精通Java,我设法找到了使用javascript引擎将字符串转换为对象的代码片段,就像浏览器所做的那样:
 ScriptEngineManager manager = new ScriptEngineManager();
 ScriptEngine engine = manager.getEngineByName("js");        
 Object result = engine.eval([Your Address String Variable Here]);然后,结果应该是从字符串派生的对象。
希望这能有所帮助。
https://stackoverflow.com/questions/29878172
复制相似问题