ElasticSearch how to handle single field that may contain either a value or an object

So I'm trying to use ElasticSearch for the first time and having some trouble putting my logs into it.

the part of the log (which is getting indexed into "index_a") I have problem with looks something like this:

    .
    .
    .
"parameters" {
    "Types": {
        "Name":"Name A",
        .
        .
    }
}
    .
    .
    .

Which isn't a problem, but sometimes, "index_a" gets a log that looks like this:

    .
    .
    .
"parameters" {
    "Types": {
        "Name":{
               "First":"Name A",
               "Second":"Name B",
               "Third": ...
                     .
                     .
                     .
               }
        .
        .
    }
}
    .
    .
    .

Which in Kibana I would like to see as something like this:

Name.First,
Name.Second,
    .
    .
    .

ElasticSearch causes error on this, saying that the index was expecting an object, but received a concrete value (or vice versa depending on which log got dynamically mapped first).

As I'm not sure what information I would need later for my analysis just yet, I'd like to keep values in each fields as minimal as possible (i.e. if field "example_field" is an dictionary, I'd much rather have key:value pairs in example_field be written down individually as separate fields, not as text representation of a dictionary).

Is there a way to solve this WITHOUT USING PREPROCESSING? (like LogStash)

So, to sum up:

  1. Does ElasticSearch have a way to handle single field that may contain multiple types of values (string, objects, etc)
  2. Can 1 be done without using preprocessing phase (so basically just mapping)

Thank you!