Как объединить объект с одним и тем же ключом, игнорируя оболочку массива ([])?
Строки ниже примера имеют свойства с именами "elements[0]"
, "elements[1]"
и "elements[2]"
.
- Свойства могут быть на любом уровне структуры JSON.
- более одного элемента массива, например, elements [0], [1], [2], [3] и anotherelement [0] , [1], [2], [3]
{
"addresses":[
"some address"
],
"rows":[
{
"elements[0]":{
"distance":{
"text":"227 mi",
"value":365468
},
"duration":{
"text":"3 hours 54 mins",
"value":14064
},
"status":"OK"
},
"elements[1]":{
"distance":{
"text":"94.6 mi",
"value":152193
},
"duration":{
"text":"1 hour 44 mins",
"value":6227
},
"status":"OK"
},
"elements[2]":{
"distance":{
"text":"2,878 mi",
"value":4632197
},
"duration":{
"text":"1 day 18 hours",
"value":151772
},
"status":"OK"
}
}
],
"status":[
"OK"
]
}
Ожидается элемент [{element0, element1, element2}].
{
"addresses":[
"some address"
],
"rows":[
{
"elements": [{
"distance": {
"text": "227 mi",
"value": 365468
},
"duration": {
"text": "3 hours 54 mins",
"value": 14064
},
"status": "OK"
},
{
"distance": {
"text": "94.6 mi",
"value": 152193
},
"duration": {
"text": "1 hour 44 mins",
"value": 6227
},
"status": "OK"
},
{
"distance": {
"text": "2,878 mi",
"value": 4632197
},
"duration": {
"text": "1 day 18 hours",
"value": 151772
},
"status": "OK"
}]}
],
"status":[
"OK"
]
}
Требуется в строке unknown JSON, поэтому не может создать класс / модель. Выше приведен пример, любой общий код c будет более полезным.
Обновлено :: Спасибо @ db c. Это выглядит многообещающе, элементы порядка обязательно будут возрастать, однако другие ключи меняются местами
{
"elements[0]": "Value 0",
"elements[1]": "Value 1",
"anotherelement[0]": "Another value 0",
"anotherelement[1]": "Another value 1",
"status" : "OK",
"lastitem" : "yes"
}
результат такой, как показано ниже. Можно ли как есть порядок вещей. Я знаю, что в JSON это не повлияет, но просто хочу посмотреть, возможно ли
{
"status" : "OK",
"lastitem" : "yes",
"elements": [
"Value 0",
"Value 1"
],
"anotherelement": [
"Another value 0",
"Another value 1"
]
}
ожидается
{
"elements": [
"Value 0",
"Value 1"
],
"anotherelement": [
"Another value 0",
"Another value 1"
],
"status" : "OK",
"lastitem" : "yes"
}