首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将json作为JSON对象作为对象的字符串属性发送给客户端

将json作为JSON对象作为对象的字符串属性发送给客户端
EN

Stack Overflow用户
提问于 2015-04-26 13:21:39
回答 2查看 1K关注 0票数 0

我使用cassandra作为DB,并将用户地址作为JSON存储在User对象的User字段中。

代码语言:javascript
运行
复制
class User {
  private long id;
  private String name;
  private String address;
}

然后,DB列中的用户行如下所示

代码语言:javascript
运行
复制
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?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-26 13:29:29

我认为您应该在address字段中使用注释@JsonRawValue。

@JsonRawValue:每个属性标记,可用于指定属性值将按原样包括在序列化的“确切”中,没有转义或修饰--用于在输出中嵌入预序列化的JSON (或任何数据格式)。

https://github.com/FasterXML/jackson-annotations/wiki/Jackson-Annotations

票数 2
EN

Stack Overflow用户

发布于 2015-04-26 13:30:27

它被视为字符串,因为它是字符串。您需要将其转换为对象。由于不精通Java,我设法找到了使用javascript引擎将字符串转换为对象的代码片段,就像浏览器所做的那样:

代码语言:javascript
运行
复制
 ScriptEngineManager manager = new ScriptEngineManager();
 ScriptEngine engine = manager.getEngineByName("js");        
 Object result = engine.eval([Your Address String Variable Here]);

然后,结果应该是从字符串派生的对象。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29878172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档