Как найти последнюю строку в строке (package.json) - PullRequest
1 голос
/ 12 ноября 2019

Я пытался добавить новые поля в конце package.json. Я не могу использовать

  • JSON.parse
  • добавить новый элемент
  • JSON.stringfy

подход, потому что он дает мне однострочный вывод. Я не хочу изменять другие строки в package.json в git diff. Мне нужно только увидеть новое свойство, вот и все.

Поэтому я попытался найти последнюю строку после получения package.json в строковом формате. Это шаги

  • Удалить закрывающую фигурную скобку
  • Найти последнюю строку (обрезать пустые пробелы и ввести)
  • Добавить запятую
  • Добавить новое свойствона следующей строке
  • Добавить закрывающую фигурную скобку

Это работает, однако json также может содержать число, ноль, логические значения (true / false) в и. Как я могу обнаружить это, если это так? Также, пожалуйста, дайте мне знать любой другой тип, который может иметь json.


Первый подход благодаря вкладу @ jonrsharpe работает как шарм.

packageJSON = `{
    "abc": "def",
    "qwe": true
}
`
function addNewField(packageJSON){

    const obj = JSON.parse(packageJSON)
    obj["newField"] = {
        z: "zzz",
        x: 100
    }
    return JSON.stringify(obj, null, 2)

}

const resultStr = addNewField(packageJSON)
/*
"{
  "abc": "def",
  "qwe": true,
  "newField": {
    "z": "zzz",
    "x": 100
  }
}"
*/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...