Updating an Object field

There are two approaches that I can think of.

You can put the value of streamItemData between square brackets and treat it like an array with one element. The update API replaces the entire array each time your update a document, so this will allow you to replace the entire object. There should be no other impact on your applications, as arrays with one element are the same thing as a single object.

POST test/type1/123/_update
{
  "doc": {
    "streamItemData": [
      {
        "itemID": 340,
        "author": {
          "employeeID": 32,
          "authorName": {
            "firstName": "Bill",
            "lastName": "Johnson"
          }
        }
      }
    ]
  }
}

Or, if you want to use a script, the following is a nice shorthand:

POST test/type1/123/_update
{
  "script": """  
    ctx._source.streamItemData = [ "author": [ "employeeID": 32, "authorName" : ["firstName": "Bill", "lastName": "Johnson" ] ] ]
    """
}