beckchr / staxon

JSON via StAX
107 stars 47 forks source link

Custom regex support #28

Open iuj opened 9 years ago

iuj commented 9 years ago

Given the xml request,

<sample>
    <person>
        <ID>12999E105</ID>
        <name>Paul</name>
        <age>20</age>
    </person>
</sample>

Our application needs to convert it into the following JSON format. { "sample": { "person": { "ID":"12999E105", "name":"Paul", "age":20 } } }

Note the types of the values of "ID" (String) and "age" (int) fields. With the configuration options available in JsonXMLConfigBuilder, we cannot disable the autoPrimitive feature selectively. Therefore, currently we can only obtain one of the following results based on the setting of autoPrimitive configuration, but none of them are desirable. autoPrimitive(true) {"ID":1.2999E+109, "name":"Paul", "age":20 } autoPrimitive(false) { "ID":"12999E105", "name":"Paul", "age":"20" } To address this, we came up with a new configuration option for JsonXMLConfigBuilder; customRegex(String regex), which will make the above requirement possible. ie, based on the value of customRegex, StAXON will skip the values of JSON fields that match the regex from being converted into a primitive type.