我使用cassandra作为数据库,并在A
对象的int create_threads(t_lemin *lem)
{
int i;
pthread_t **threads;
int j;
void *ret;
t_tree *tmp;
j = -1;
printf("starting algo\n");
threads = xmalloc(sizeof(pthread_t));
i = count_leaf(lem->start);
tmp = lem->start;
printf("%d\n", tmp->visited[0]);
while (++j != i)
{
tmp->leaf[j]->thread_nbr = j;
pthread_create(threads[j], NULL, find_way_out, tmp->leaf[j]);
usleep(100);
}
i = -1;
while (++j != i)
(void)pthread_join (*threads[j], &ret);
//printf("%d\n", *((int*)ret));
return (0);
}
字段中将用户地址存储为JSON。
"address"
然后DB列中的User行如下
User
但是当我从DB查询class User {
private long id;
private String name;
private String address;
}
对象并作为REST api的结果返回时,我看到Jackson将User对象转换为JSON。但是我发现id | name | address
================================
12345| jhon | {"hno":"12-10-46/3","street":"lavella road","city":"begaluru"}
字段是字符串类型而不是另一个JSON对象。但我希望“地址”应该被解释为客户端的JSON对象。
我怎么能说杰克逊将内部字符串属性转换为JSON呢?
答案 0 :(得分:2)
我认为您应该在地址栏中使用注释@JsonRawValue。
@JsonRawValue:可用于指定该属性的每个属性标记 财产的价值将被包括在序列化中“完全” 因为没有逃脱或装饰 - 对于嵌入很有用 输出中预先序列化的JSON(或正在使用的任何数据格式)
https://github.com/FasterXML/jackson-annotations/wiki/Jackson-Annotations
答案 1 :(得分:0)
它被视为一个字符串,因为它是一个字符串。您需要将其转换为对象。不熟悉Java我设法找到这个使用javascript引擎将字符串评估为对象的代码片段,就像浏览器一样:
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
Object result = engine.eval([Your Address String Variable Here]);
然后结果应该是从字符串派生的对象。
希望这有帮助。