Javascript исправить json с регулярным выражением

Привет всем, я хочу исправить свой json У меня есть строки без " и мне нужно как-то их вернуть Я нашел регулярное выражение, которое находит некоторые тексты, но все равно не возвращает правильный результат.

 var newString2 = j.replace(/[a-zA-Z0-9@.,_+]*[^:][\w]/g, function(x){
      return '"'+x+'"';

    });

мой json

{
  User_Story_UI_24: 
   {
     Env:Staging,
     UserName:[email protected],
     Password: User@SDF45sdfg,
     Supplier:Xxxxx,
     SupplierWebSite:www.xxxx.com,
     SupplierPhone:+111 2223334440,
     SupplierAddress:sss asf21, asf asf, saf
   }
}

ожидаемый результат

{
  "User_Story_UI_24": 
   {
     "Env":"Staging",
     "UserName":"[email protected]",
     "Password": "User@SDF45sdfg",
     "Supplier":"Xxxxx",
     "SupplierWebSite":"www.xxxx.com",
     "SupplierPhone":"+111 2223334440",
     "SupplierAddress":"sss asf21, asf asf, saf"
   }
}

Каков ожидаемый результат?

mrzasa 18.07.2019 14:03

@mrzasa Я думаю, что значения под User_Story_UI_24 должны быть в одинарных или двойных кавычках, вот что я понял

shrys 18.07.2019 14:06

Где вы видите этот JSON? Как он создается/отправляется? «Исправить JSON» кажется плохой идеей.

Austin T French 18.07.2019 14:08

Нельзя просто найти регулярное выражение

CinCout 18.07.2019 14:09

Я не могу исправить строку его камеры из заводного конвейера на Дженкинсе в качестве параметра

shaharnakash 18.07.2019 14:09

если вы можете исправить этот stackoverflow.com/questions/57089855/…, это может быть полезно, но кажется, что на данный момент никто не знает

shaharnakash 18.07.2019 14:12
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
6
176
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я использовал регулярное выражение, которое обнаруживает строки в вашем регулярном выражении (при условии, что оно в том же формате, что и в вашем примере).
Затем он использует функцию, которая получает совпадающие группы в качестве своих параметров и соответственно создает две строки в кавычках.

Единственное изменение, которое я внес в ваш ввод, заключалось в добавлении запятой после последнего свойства, чтобы сохранить все строки в одном формате:

const input = `{
  User_Story_UI_24: 
   {
     Env:Staging,
     UserName:[email protected],
     Password: User@SDF45sdfg,
     Supplier:Xxxxx,
     SupplierWebSite:www.xxxx.com,
     SupplierPhone:+111 2223334440,
     SupplierAddress:sss asf21, asf asf, saf,
   }
}`;

let ans = input.replace(/(\w+?): ?([+\w @.,]+),/g, (row, prop, value) => {
  return `"${prop}": "${value}",`;
});
console.info(ans);

аммм почти как насчет User_Story_UI?

shaharnakash 18.07.2019 14:19

Я боюсь, что его нужно изменить с помощью отдельного регулярного выражения, так как оно не соответствует тому же формату, и поэтому в замещающей функции будет отсутствовать параметр. Кстати, JSON действителен без свойств, заключенных в кавычки.

GalAbra 18.07.2019 14:40

нужно стереть запятую в последнем параметре

shaharnakash 18.07.2019 15:18

Другие вопросы по теме