Javascript Анализирует аналог JSON

#javascript #json #parsing

#javascript #json #синтаксический анализ

Вопрос:

У меня есть строка, которая выглядит устрашающе как json:

 columns: [
  {
    allowNull: false,
    autoEnterSubType: 0,
    autoEnterType: 2,
    creationOrderIndex: 0,
    dataType: 4,
    databaseSequenceName: "seq_admintraties_adminratie_id",
    flags: 1,
    name: "administratie_id"
  },
  {
    allowNull: true,
    creationOrderIndex: 4,
    dataType: 12,
    length: 50,
    name: "database_naam"
  },
  {
    allowNull: true,
    creationOrderIndex: 1,
    dataType: 12,
    length: 50,
    name: "naam"
  },
  {
    allowNull: true,
    creationOrderIndex: 2,
    dataType: 12,
    length: 50,
    name: "omschrijving"
  },
  {
    allowNull: true,
    creationOrderIndex: 3,
    dataType: 12,
    length: 50,
    name: "organisatie_naam"
  }
],
name: "administraties",
tableType: 0
  

но это не

Мне нужно разобрать его с помощью javascript, но я не хочу проходить через разделение, потому что я чувствую, что это можно сделать более простым способом.

У кого-нибудь из вас есть предложения о том, как подойти к этому?

Комментарии:

1. eval это самый простой способ проанализировать это… нравится это или нет

Ответ №1:

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

Я исправил часть вашей входной строки, чтобы вы могли получить представление,

 {
  "columns":[
    {
      "allowNull":false,
      "autoEnterSubType":0,
      "autoEnterType":2
    },
    {
      "allowNull":true,
      "creationOrderIndex":4
    }
  ],
  "name":"administraties",
  "tableType":0
}
  

Вы можете использовать приведенный ниже сайт для проверки любой строки json :

https://jsonformatter.curiousconcept.com/

используйте это регулярное выражение для преобразования вашей строки в json :

 var str   = 'your_string';
var regex = /^[^"]([a-zA-Z0-9_-]) /;
str = str.replace(regex, "$amp;");

str = "{"   str   "}";