Преобразование строки ассоциативного массива в массив - PullRequest
0 голосов
/ 29 апреля 2020

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

Я пробовал приведенный ниже код, но он не работает.

var string = "{'custom_text_record': 'Text Here', 'fill_record': '0'}";
var s_obj = JSON.parse(string) ;

alert(s_obj['custom_text_record']);

1 Ответ

2 голосов
/ 29 апреля 2020

Вам нужно получить JSON формат из строки ассоциативного массива,

Формат JSON должен быть "{'custom_text_record': 'TextHere', 'fill_record' : '0'} "прежде чем мы используем JSON parse function

Пожалуйста, попробуйте это.

var string = '{"custom_text_record": "Text Here", "fill_record": "0"}';

var jsonStrig = '{';
  var items = string.split(',');
  for (var i = 0; i < items.length; i++) {
    var current = items[i].split(':');
    jsonStrig += '"' + current[0].replace(/{|'|"|}|\s/g, '') + '":"' + 
                 current[1].replace(/{|'|"|}|\s/g, '') + '",';
  }
  jsonStrig = jsonStrig.substr(0, jsonStrig.length - 1);
  jsonStrig += '}';

var s_obj = JSON.parse(jsonStrig);
console.log(s_obj['custom_text_record']);

Регулярное выражение может использоваться для фильтрации одинарных кавычек, двойных кавычек и скобок, пробелов, которые могут появляться в строке ассоциативного массива. Я думаю, что мы можем преобразовать любой тип строки ассоциативного массива, например '{key: value}' style в правильный JSON формат и, наконец, получить массив таким образом. Я надеюсь, что это будет полезно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...