Problem serialize empty JsonObject and Array [message #1100556] |
Tue, 03 September 2013 04:55  |
Eclipse User |
|
|
|
Hi I have the following simple json grammar:
RootObject returns JsonObject:
(JsonObject | EmptyObject)?;
JsonObject:
{JsonObject} '{' (members+=Member) (',' members+=Member)* '}';
EmptyObject returns JsonObject:
{JsonObject} '{' '}';
Member:
key=STRING ':' name=Value;
Value:
JsonObject | EmptyObject | StringValue | Array | EmptyArray | Boolean | Null | NumberValue;
NumberValue:
name=NUMBER;
StringValue:
name=STRING;
Array:
{Array} '[' ( => values+=Value) (',' values+=Value)* ']';
EmptyArray returns Array:
{Array} '[' ']';
Boolean:
{Boolean} (name='true' | 'false');
Null:
{Null} name='null';
terminal NUMBER:
'-'? INT ('.' INT)? (('E' | 'e') '-'? INT)?;
terminal INT returns ecore::EInt:
('0'..'9')+;
terminal STRING returns ecore::EString:
'"' ( '\\' ('"'|'/'|'\\'|'b'|'f'|'n'|'r'|'t') | !('\\'|'"') )* '"';
terminal WS:
(' '|'\t'|'\r'|'\n')+;
If I try to serialise this simple json sniped I get an SyntaxException
{
"version": "1.0",
"foo": {}
}
Trace:
org.eclipse.xtext.validation.IConcreteSyntaxValidator$InvalidConcreteSyntaxException: These errors need to be fixed before the model can be serialized.
JsonObject.members[1]->Member'com.test.voconhint.json.impl.JsonObjectImpl@73ee70bd'.name->JsonObject: Feature JsonObject.members holds 0 non-transient value(s), but at least 1 are required. Constraint: (members members*) Quantities: members:0
JsonObject.members[1]->Member'com.test.voconhint.json.impl.JsonObjectImpl@73ee70bd'.name->JsonObject: Feature JsonObject.members holds 0 non-transient value(s), but at least 1 are required. Constraint: (members members*) Quantities: members:0
at org.eclipse.xtext.serializer.impl.Serializer.serialize(Serializer.java:96)
at org.eclipse.xtext.serializer.impl.Serializer.serialize(Serializer.java:122)
at org.eclipse.xtext.serializer.impl.Serializer.serialize(Serializer.java:51)
at com.test.ValidateJob.validate(ValidateJob.java:83)
The code that serializes the json is just this simple line:
serializer.serialize(json)
Any pointers on whats happening wrong here?
Kind Regards
Manner
|
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.04158 seconds