2017-09-01 1 views
0

Ich habe eine ID (Long), die js kann nicht damit umgehen. Wenn ich also ID zurückgebe, möchte ich eine andere Eigenschaft id_str zurückgeben.benutzerdefinierte Eigenschaft hinzufügen, wenn writeValueAsString (Objekt)

Genau wie:

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

I fastxml jackson writeValueAsString(object) Methode verwenden.

Was soll ich tun?

+1

Willkommen bei Stack Overflow! Leider enthält Ihre Frage nur Anforderungen - es zeigt keinerlei Bemühungen von Ihnen, dieses Problem selbst zu lösen. Bitte fügen Sie Ihre Versuche zu diesen Fragen hinzu - da diese Site nicht kostenlos ist, machen wir Ihre (Heim-) Arbeit. Darüber hinaus wenden Sie sich bitte an die [Hilfe], um zu erfahren, wie/was Sie hier fragen können. Vielen Dank! – GhostCat

+0

Warum schreibe ich die ID nicht einfach nur als String, anstatt sie als Long und String auszugeben? – JonK

Antwort

0

Fehler beim Neuschreiben des JsonSerializers. Vielleicht ist es zu schwer für mich. Also ändere ich die JSON-Zeichenfolge. Hier ist der Code:

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(); 
} 
Verwandte Themen