optimize JsValueDeserializer. use tableswitch