2017-09-01 20 views
0

我有一个ID(长),JS无法处理它。所以当我返回id时,我想返回另一个属性id_str。当writeValueAsString添加自定义属性(对象)

就像:

{"id":43777753494847488, "id_str":"43777753494847488"}

我使用fastxml杰克逊writeValueAsString(object)方法。

我该怎么办?

+1

欢迎来到堆栈溢出!不幸的是,你的问题只包含需求 - 它并没有显示你方的努力来解决这个问题。请将您的尝试加入这个问题 - 因为本网站不是免费的“我们做您的(家)工作”服务。除此之外:请转到[帮助]了解如何/在这里问什么。谢谢! – GhostCat

+0

为什么不直接将ID作为字符串写出,而不是将它写成长整型和字符串? – JonK

回答

0

无法重写JsonSerializer。也许这对我来说很难。所以我修改了json字符串。这里是代码:

public static String expandUserIDStr(String json) { 
    String key = "user_id"; 
    String expandKey = "user_id_str"; 

    String r = "\"" + key + "\":(\\d+)[,]{0,1}"; 
    Pattern patter = Pattern.compile(r); 
    Matcher matcher = patter.matcher(json); 

    StringBuffer buffer = new StringBuffer(); 
    while (matcher.find()) { 
     String expandContent = "\"" + expandKey + "\":\"" + matcher.group(1) +"\"," + matcher.group(0); 
     System.out.println(expandContent); 
     matcher.appendReplacement(buffer, expandContent); 
    } 
    matcher.appendTail(buffer); 

    return buffer.toString(); 
}