Как использовать умножение двух путей к объектам json в javascript в microsoft.clearscript.v8 ⇐ C#
Как использовать умножение двух путей к объектам json в javascript в microsoft.clearscript.v8
Я использую microsoft.clearscript.v8 в ядре asp.net mvc, по пути inputpath :{{(}}&Account.Order..Product..Quantity&{{}}&Account.Order..Product..Price&{{)} } не работает регулярное выражение, я хочу удалить регулярное выражение {{[^{}]+}}, и два пути получаются и умножаются друг на друга и печатаются в Путь вывода: Account.Order1..Product.*.Общий путь, это мой код homecontroller.cs.
var extraJsons = @" { ""Счет"": { ""AccountName"": ""Firefly"", ""Заказ"": [ { ""OrderID"": ""order103"", ""Продукт"": [ { ""ProductName"": ""Котел"", ""ProductID"": 858383, «Цена»: 34, «Количество»: 2 }, { ""ProductName"": ""Шляпа Трилби"", ""ProductID"": 858236, ""SKU"": ""0406634348"", «Цена»: 21, «Количество»: 1 } ] }, { ""OrderID"": ""order104"", ""Продукт"": [ { ""ProductName"": ""Котел"", ""ProductID"": 858383, ""SKU"": ""040657863"", «Цена»: 34, «Количество»: 4 }, { ""ProductID"": 345664, ""SKU"": ""0406654603"", ""ProductName"": ""Плащ"", «Цена»: 107, «Количество»: 1 } ] } ] } }"; используя (var engine = новый V8ScriptEngine()) { // Загружаем дополнительные данные и правила JSON в обработчик скриптов engine.Execute($"var extraJson = {additionalJsons};"); engine.Execute("var Final = [];"); engine.Execute(@" правило класса { конструктор (inputPath, выходной путь, тип, значение) { this.inputPath = inputPath; this.outputPath = выходной путь; this.type = тип; это.значение = значение; } } // Создаем список правил с информацией о типе и целевыми путями вар правила = [ новое правило('Account.Order.*.Product.*.ProductName', 'Account.Order1.*.Product.*.ProductN', 'ChangeFieldName'), новое правило('Account.Order.*.Product.*.ProductID', 'Account.Order1.*.Product.*.NewProductID', 'ChangeFieldName'), новое правило('Account.Order.0.Product.0.Price', 'Account.Order1.0.Product.0.Price', 'ChangeValueName', 50), // Добавьте сюда новое правило ]; // Функция для применения правил для изменения имен полей для данного объекта функция applyRules (targetObj, правила) { вар модифицированные данные = {}; Rules.forEach(правило => { вар inputPaths = getMatchingPaths(rule.inputPath); вар outputPaths = getMatchingPaths(rule.outputPath); if (inputPaths.length === outputPaths.length) { for (var я = 0; я
Я использую microsoft.clearscript.v8 в ядре asp.net mvc, по пути inputpath :{{(}}&Account.Order..Product..Quantity&{{}}&Account.Order..Product..Price&{{)} } не работает регулярное выражение, я хочу удалить регулярное выражение {{[^{}]+}}, и два пути получаются и умножаются друг на друга и печатаются в Путь вывода: Account.Order1..Product.*.Общий путь, это мой код homecontroller.cs.
var extraJsons = @" { ""Счет"": { ""AccountName"": ""Firefly"", ""Заказ"": [ { ""OrderID"": ""order103"", ""Продукт"": [ { ""ProductName"": ""Котел"", ""ProductID"": 858383, «Цена»: 34, «Количество»: 2 }, { ""ProductName"": ""Шляпа Трилби"", ""ProductID"": 858236, ""SKU"": ""0406634348"", «Цена»: 21, «Количество»: 1 } ] }, { ""OrderID"": ""order104"", ""Продукт"": [ { ""ProductName"": ""Котел"", ""ProductID"": 858383, ""SKU"": ""040657863"", «Цена»: 34, «Количество»: 4 }, { ""ProductID"": 345664, ""SKU"": ""0406654603"", ""ProductName"": ""Плащ"", «Цена»: 107, «Количество»: 1 } ] } ] } }"; используя (var engine = новый V8ScriptEngine()) { // Загружаем дополнительные данные и правила JSON в обработчик скриптов engine.Execute($"var extraJson = {additionalJsons};"); engine.Execute("var Final = [];"); engine.Execute(@" правило класса { конструктор (inputPath, выходной путь, тип, значение) { this.inputPath = inputPath; this.outputPath = выходной путь; this.type = тип; это.значение = значение; } } // Создаем список правил с информацией о типе и целевыми путями вар правила = [ новое правило('Account.Order.*.Product.*.ProductName', 'Account.Order1.*.Product.*.ProductN', 'ChangeFieldName'), новое правило('Account.Order.*.Product.*.ProductID', 'Account.Order1.*.Product.*.NewProductID', 'ChangeFieldName'), новое правило('Account.Order.0.Product.0.Price', 'Account.Order1.0.Product.0.Price', 'ChangeValueName', 50), // Добавьте сюда новое правило ]; // Функция для применения правил для изменения имен полей для данного объекта функция applyRules (targetObj, правила) { вар модифицированные данные = {}; Rules.forEach(правило => { вар inputPaths = getMatchingPaths(rule.inputPath); вар outputPaths = getMatchingPaths(rule.outputPath); if (inputPaths.length === outputPaths.length) { for (var я = 0; я
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Сохраняет ли Clearscript ScriptEngine код для последующих вызовов Execute?
Anonymous » » в форуме C# - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-