Я не думаю, что вы найдете какие-либо твердые, основанные на доказательствах аргументы против включения списка пар ключ-значение в вашу схему сообщений. Но это то, что нужно искать - люди, пишущие о дизайне схемы сообщений, и о том, как разрабатывать сообщения для поддержки изменений и т. Д.
На практике нет большой разницы
{
"Name" : "Johny English",
"Id": "534dsf",
"Message":[
{
"Header":"Country of origin",
"Value":"England"
},
{
"Header":"Nature of work",
"Value":"Secret Agent/Spy"
}
]
}
или
{
"Name" : "Johny English",
"Id": "534dsf",
"Message": {
"Country of origin": "England",
"Nature of work": "Secret Agent/Spy"
}
}
В первые дни всемирной паутины «все» - это пары ключ-значение, потому что было легко описать набор пар ключ-значение в таком так, чтобы с ним мог работать компонент общего назначения, такой как веб-браузер (ie, определения форм HTML). Он сделал свою работу.