2013-05-06 3 views
0

У меня есть класс Java, и я хочу сгенерировать строку JSON из объекта класса. Тем не менее, члены класса являются следующие:Java flexjson Сериализация составных объектов JSON

/** 
* The set containing the footer texts 
*/ 
public HeaderOrFooter[] footers = null; 
/** 
* The title of the word cloud 
*/ 
public HeaderOrFooter title; 
/** 
* The subtitle of the word cloud 
*/ 
public HeaderOrFooter subTitle; 
/** 
* The set of rectangles to be drawn 
*/ 
public Rectangle[] rectangles; 
/** 
* The set of round rectangles to be drawn 
*/ 
public RoundRectangle[] roundRectangles; 
/** 
* The set of lines to be drawn 
*/ 
public Line[] lines; 
/** 
* The set of polygons to be drawn 
*/ 
public Polygon[] polygons; 
/** 
* The set of words to be drawn 
*/ 
public Word[] words; 

и мой метод, который преобразует объект JSON выглядит следующим образом:

public String convertToJSON() 
{ 
    flexjson.JSONSerializer jsonSerializer = new flexjson.JSONSerializer(); 
    jsonSerializer.exclude("class"); 
    jsonSerializer.exclude("subTitle.class"); 
    jsonSerializer.exclude("title.class"); 
    return jsonSerializer.serialize(this); 
} 

Я использую flexjson и его JSONSerializer объект. Моя проблема заключается в том, что он преобразует только элементы title и subTitle в JSON, массивы не преобразуются. Может кто-нибудь сказать мне, как я могу включить массивы в свой JSON? Благодарю.

+0

Вы дали массивы значение с 'новой строки [1]' или что-то подобное? После этого вы заполняете объекты (строки) «Линия». –

+0

Массивы заполнены значением. Я могу сериализовать их отдельно, но я хотел бы сгенерировать JSON из моего объекта, содержащего их. –

ответ

3

Я понял это, вот это и есть правильная функция:

// Re-using the serializer as per "Thread Safety and Reuse" 
// section of http://flexjson.sourceforge.net/ 
public static final flexjson.JSONSerializer jsonSerializer; 
static { 
    jsonSerializer = new flexjson.JSONSerializer().exclude("*.class"); 
} 

public String toJSON() { 
    return jsonSerializer.deepSerialize(this); 
} 
Смежные вопросы