2016-02-14 4 views
1

У меня есть этот класс:
изменить имя поля при сериализации объекта

import org.boon.json.annotations.SerializedName; 

public class QueuedMessage { 

    @SerializedName("message_id") 
    String id; 

    @SerializedName("message") 
    String msg; 

    public String getId() { 
     return id; 
    } 

    public void setId(String id) { 
     this.id = id; 
    } 

    public String getMsg() { 
     return msg; 
    } 

    public void setMsg(String msg) { 
     this.msg = msg; 
    } 
} 

я создаю объект и сериализации, но имена полей не изменились

QueuedMessage qm = new QueuedMessage(); 
    qm.setId("1"); 
    qm.setMsg("hi"); 
    String js1 = json.toJson(qm); 

Я ожидаю, что СП1 переменная будет что-то например: {"message_id": "1", "message": "hi"}
, но это: {"id": "1", "msg": "hi", "id": "1", " "msg": "hi"}

+0

Может быть, попробовать использовать @JsonProperty –

+0

он не работает слишком! –

ответ

1

Вы должны сказать JsonFactory использовать аннотации:

ObjectMapper json = JsonFactory.createUseAnnotations(true); 
1

n ot обязательно о Boon, но вот как вы можете использовать Gson для сериализации Object, может возникнуть проблема с ввозом String или SerializedName. Просьба проверить это. Этот пример работает как показано на рисунке. код также доступен по адресу Github .

import com.google.gson.Gson; 
import com.google.gson.annotations.SerializedName; 

/** 
* Created by Pankaj Nimgade on 14-02-2016. 
*/ 
public class TestDriveOne { 

    public static void main(String[] args) { 
     QueuedMessage queuedMessage = new QueuedMessage("123", "Hello World"); 
     System.out.println((new Gson()).toJson(queuedMessage)); 
    } 


} 

class QueuedMessage { 

    @SerializedName("message_id") 
    private String id; 

    @SerializedName("message") 
    private String msg; 

    public QueuedMessage() { 
    } 

    public QueuedMessage(String id, String msg) { 
     this.id = id; 
     this.msg = msg; 
    } 

    public String getId() { 
     return id; 
    } 

    public void setId(String id) { 
     this.id = id; 
    } 

    public String getMsg() { 
     return msg; 
    } 

    public void setMsg(String msg) { 
     this.msg = msg; 
    } 
} 

.

Выход

{ 
    "message_id": "123", 
    "message": "Hello World" 
} 
+0

Спасибо за ваш ответ, но я должен использовать Boon !!! –

Смежные вопросы