Pull to refresh
14
0
Валерий Шинкевич @kxl

Разработчик ПО

Send message

Потому, что это не их бизнес.... Они просто заинтересованы в том, чтобы среднестатистический пользователь ничего не понимал и заносил им и франчайзи регулярно

хотя, лучше даже будет охватить такой вариант, когда последний блок не содержит "описание" и нужно получить последний из тех, что всё-таки содержат:

[{
	"operation": "shift",
	"spec": {
		"@": ["isDescript.details", "arr"]
	}
}, {
	"operation": "shift",
	"spec": {
		"arr": {
			"*": "arr[]"
		},
		"*": "&"
	}
}, {
	"operation": "shift",
	"spec": {
		"arr": {
			"*": {
				"описание": "arr"
			}
		},
		"*": "&"
	}
}, {
	"operation": "modify-overwrite-beta",
	"spec": {
		"arr": "=lastElement(@(1,arr))"
	}
}, {
	"operation": "shift",
	"spec": {
		"arr": "isDescript.description",
		"*": "&"
	}
}]

В уже упомянутом телеграмм-канале подсказали, что я заблуждаюсь насчет последнего элемента. И если подумать, то вырисовывается такое решение:

[{
	"operation": "shift",
	"spec": {
		"@": ["isDescript.details", "arr"]
	}
}, {
	"operation": "shift",
	"spec": {
		"arr": {
			"*": "arr[]"
		},
		"*": "&"
	}
}, {
	"operation": "modify-overwrite-beta",
	"spec": {
		"arr": "=lastElement(@(1,arr))"
	}
}, {
	"operation": "shift",
	"spec": {
		"arr": {
			"описание": "isDescript.description"
		},
		"*": "&"
	}
}]

которое даёт

{
	"isDescript": {
		"details": {
			"Предупреждения": {
				"ПРЕДУПРЕЖДЕНИЕ": "Этот картриджей."
			},
			"Основные характеристики": {
				"Назначение": "Для печатающих устройств",
				"Производитель": "Static Control",
				"Цвет чернил": "Пурпурный (Magenta)",
				"Тип оборудования": "Картридж",
				"описание": "Великолепный картридж",
				"Модель": "002-01-VF353A"
			},
			"Другие характеристики": {
				"описание": "Плохой картридж",
				"Модель": "002-01-VF353A"
			}
		},
		"description": "Плохой картридж"
	}
}

Да, можно.... Например, будет такая цепочка процессоров.

В RouteOnAttribute проверять размерность массива

Тип description сменился на массив, а это может быть не очень хорошо для принимающей стороны. Если вы уверены, что такие данные будут вам попадаться, то можно description принудительно сделать массивом.

[{
	"operation": "shift",
	"spec": {
		"*": {
			"описание": "isDescript.description[]",
			"@": "isDescript.details.&"
		}
	}
}]

Эта ситуация маловероятна со слов автора вопроса. Но, если взять эту-же спецификацию и пример

{
  "Предупреждения" : {
    "ПРЕДУПРЕЖДЕНИЕ" : "Этот картриджей."
  },
  "Основные характеристики" : {
    "Назначение" : "Для печатающих устройств",
    "Производитель" : "Static Control",
    "Цвет чернил" : "Пурпурный (Magenta)",
    "Тип оборудования" : "Картридж",
    "описание" : "Великолепный картридж",
    "Модель" : "002-01-VF353A"
  },
  "Другие характеристики" : {
    "описание" : "плохой картридж",
    "годен до" : "002-01-VF353A"
  }
}

Получится:

{
	"isDescript": {
		"details": {
			"Предупреждения": {
				"ПРЕДУПРЕЖДЕНИЕ": "Этот картриджей."
			},
			"Основные характеристики": {
				"Назначение": "Для печатающих устройств",
				"Производитель": "Static Control",
				"Цвет чернил": "Пурпурный (Magenta)",
				"Тип оборудования": "Картридж",
				"описание": "Великолепный картридж",
				"Модель": "002-01-VF353A"
			},
			"Другие характеристики": {
				"описание": "плохой картридж",
				"годен до": "002-01-VF353A"
			}
		},
		"description": ["Великолепный картридж", "плохой картридж"]
	}
}

Именно из "последнего" - никак... об этом есть в ремарка в тексте.

По итогам обсуждения задачи стало понятно, что искать "последнее" не требуется. Там посыл был такой - ожидается, что поле "описание" будет в каждом файле и именно в последнем блоке, даже если там блок один.

Т.е. будет один блок с полем "описание". А вот в названии ключа этого блока, который тут - "основные характеристики" могло быть всё, что угодно.

Если было бы несколько "описаний" и брать именно из последнего, то задача сильно усложнится...

Интересно.... Если нужно было хранить состояние, то почему не подошёл Flink?

Диапазон неверен... все, что я встречал => random(34.5, 36.0)

Манкипатчинг обычно не приветствуется в сообществе Ruby, и его следует избегать в Scala.

Ничего, что вся стандартная библиотека scala насквозь пронизана тем, что здесь обозвали monkey patching?

Этот Sporteco/EventFly, на который есть ссылка в конце статьи, похоже на то, что кто-то слизал akkatecture.net и бросил…
Хотел бы посмотреть на ZX Next, accelerated edition, что за зверь такой…
Ну, почему же? Идут, и как правило выпускники ВШЭ и прочих коммерческих вузов по специализации «Информатика в экономике» или как там её сейчас.
Я в то время нашёл книжку «Мама, папа, я и микрокалькулятор», очень помогла освоить МК-61 и 52, еще цикл статей в журналах: Техника молодежи, вроде, и Радио…
Спасибо за перевод!
Ладно бы приватность, сейчас конституция нарушается под этим предлогом…

Information

Rating
Does not participate
Location
Нижний Новгород, Нижегородская обл., Россия
Date of birth
Registered
Activity

Specialization

Lead Software/Data Engineer
Lead