i think this is a bug in flexjson. here's an easy reproduction.

here's my set up:

@ToString
@Getter
@Setter
static class Test0 {
    String aField;
    String anotherField;
    String someField;
}

// has the proper json form for "aField"
static final String TEST0 = "{\"aField\":\"a field\",\"anotherField\":\"another field\",\"class\":\"Test0\",\"someField\":\"some field\"}";

public static void main(String... args) {
    // this serializes "aField" incorrectly, but deserializes "aField" properly
    Test0 test0 = new Test0();
    test0.setAnotherField("another field");
    test0.setAField("a field");
    test0.setSomeField("some field");
    System.out.println(test0);
    String json = new JSONSerializer().serialize(test0);
    System.out.println(json);
    test0 = new JSONDeserializer<Test0>().deserialize(json);
    System.out.println(test0);

    System.out.println();

    // this doesn't deserialize "aField" properly
    System.out.println(TEST0);
    test0 = new JSONDeserializer<Test0>().deserialize(TEST0);
    System.out.println(test0);
}

Here's my output:

Test0(aField=a field, anotherField=another field, someField=some field)
{"AField":"a field","anotherField":"another field","class":"Test0","someField":"some field"}
Test0(aField=a field, anotherField=another field, someField=some field)

{"aField":"a field","anotherField":"another field","class":"Test0","someField":"some field"}
Test0(aField=null, anotherField=another field, someField=some field)

Notice how "aField" is incorrectly serialized as "AField" in the first block of output.