Мне нужен хороший дизайн для решения этой проблемы.Проверьте, имеют ли два JSON одинаковые значения для их общих имен.
Я получаю две отдельные строки JSON
каждый раз, когда я называю веб-API. Назовите их recieve1
и recieve2
. Мне нужно проверить для все обычные имена из recieve1
и recieve2
, если они имеют одинаковые значения. Если есть пара значений имени в recieve2
, которых нет в recieve1
, это нормально (и наоборот). Но я не знаю пары значений имени json-строк. Потому что я могу получить новую пару JSON
каждый раз, когда я называю это api. Например, по первому зову я могу получить эту
recieve1
:
{
"employees": [
{
"firstName": "John",
"lastName": "Doe"
},
{
"firstName": "Anna",
"lastName": "Smith"
},
{
"firstName": "Peter",
"lastName": "Jones"
}
]
}
recieve2
:
{
"employees": [
{
"firstName": "John",
"lastName": "Doe",
"Sex": "Male"
},
{
"firstName": "Anna",
"lastName": "Smith"
},
{
"firstName": "Peter",
"lastName": "Jones",
"age": "100" // recieve1 does not have this name value pair
// But that is Ok they are still equivalent
}
]
}
По моему требованию эти два «эквивалентны». Давайте посмотрим на другой пример эквивалентных JSONs, на втором вызове мы получаем, recieve1
:
{"menu":
{
"id": "1",
"name": "Second Call Return",
"ReturnCanHaveArrays": {
"array": [
{"isCommon": "Yes", "id": "1"},
{"isCommon ": "Yes", "id": "4"},
{"isCommon": "No", "id": "100"}
]
}
}
}
recieve2
:
{"menu":
{
"id": "1",
"name": "Second Call Return",
"newProperty" : "This is not present in recieve1. But that is ok"
"ReturnCanHaveArrays": {
"array": [
{"isCommon": "Yes", "id": "1"},
{"isCommon ": "Yes", "id": "4"}
]
}
}
}
Выше два jsons также эквивалентны. Но следующие два не являются:
recieve1
:
{"menu": {
"id": "1"
}}
recieve2
:
{"menu": {
"id": "10" // not equivalent.
}}
Как вы можете видеть, что я не могу определить свойство устанавливает руками. Как я могу решить эту проблему?
- Язык: C# (. Важный Необходимо использовать с #).
- NET версия: не имеет значения
- Пожалуйста, предложите лучшие проекты для решения этой проблемы.
- При необходимости используйте любую технологию. Заранее спасибо