Проблема с преобразованием данных JSON на JavaScript

Помогите передать значения из JSON-строки в список на JavaScript.

"[{"res": 1.11}, {"res": 0.0}, {"res": 1.37}, {"res": 1.8}, {"res": 5.37}, {"res": 0.16}, {"res": 90.19}]"

 success:function(result){         
        $("#diagram-res").html(JSON.stringify(result));
        var obj = JSON.stringify(result);
        console.log(obj);
        var parsed_data = $.parseJSON(result);        
        var arr = [];
        var myObject = eval('(' + obj + ')');
        for (i in myObject)
        {
          arr.append(myObject[i]["res"]);
        }
        console.log(arr);

введите сюда описание изображения


Ответы (1 шт):

Автор решения: yar85

Входные данные - это не JSON, а мясо получившееся после замены символа двойных кавычек (") в JSON-строке на HTML-последовательность в шестнадцатеричном коде (") соответствующую этому символу.

Чтобы получить валидный JSON, надо раскодировать эти HTML-последовательности обратно в нормальные символы кавычек, например так:

const shittyJson = '[{"res": 1.11}, {"res": 0.0}, {"res": 1.37}, {"res": 1.8}, {"res": 5.37}, {"res": 0.16}, {"res": 90.19}]';

const decodeHtmlEntities = str => (
  (new DOMParser).parseFromString(str, 'text/html').body.textContent
);

const realJson = decodeHtmlEntities(shittyJson),
      parsedArr = JSON.parse(realJson),
      values = parsedArr.map(v => v.res);
console.log(values);

Но лучше конечно будет просто не портить исходную JSON-строку...

→ Ссылка