Поэтому я хочу, чтобы создать этот объект JSON:Создание JSON из строки, чтобы использовать в качестве объекта
{
"id":"3",
"created":"0000-00-00",
"parentIDs":null,
"childIDs":"",
"uid":"movies",
"title":"Movies",
"related":"movies",
"pos":"",
"css":"{ "background-image":"-webkit-linear-gradient(bottom, rgb(46,44,46) 49%, rgb(18,17,18) 75%)" }"
}
из строки:
value = ""id":"3","created":"0000-00-00","parentIDs":null,"childIDs":"","uid":"imdb","title":"Imdb","related":"movies","pos":"""
Эта строка поступает из базы данных, так что я не могу действительно измените форматирование, но оно должно быть правильным.
(Эта строка происходит из массива строк похожи, что я перебирать, как-то потери {} вокруг них)
Я попытался удалить внешние кавычки с value.substr(1, value.length - 2);
. И затем конвертируйте его с .toJSON();
, но он добавляет только лишние косые черты, которые мне не нужны.
Мне просто нужно добавить {}
вокруг него, а затем javascript увидит его как объект JSON.
Есть ли какой-либо сокращенный способ сделать это? или есть небольшая библиотека, которая может превратить мою грязную строку умным способом в объект JSON?
[update]
Я пробовал: eval('{' + value + '}');
Но я получаю Uncaught SyntaxError: Unexpected token :
в Chrome.
Я попробовал JSON.parse, но получил: TypeError: JSON.parse is not a function
в Chrome и Firefox, это должно быть форматирование строки. Я начинаю подозревать запись «css», хотя она начинает жаловаться на первую запись «id», она ожидает функцию вместо JSON?
(я срубил сырец JSON, но забыл самое важное "CSS" один)
[Update2]
Ok, поэтому я изменил данные CSS в '
вместо "
, теперь он будет на самом деле разобрать, но теперь мой скрипт сломан, потому что я ожидаю, что исходный CSS из db, каким-либо образом изменить полученный 'css':'blabla'
на: "css":"blabla"
?
Нет такой вещи, как объект JSON. Есть строки JSON и объекты JavaScript; какой из двух вы хотите получить? Кроме того, вы уверены, что нет лучшего способа? «Я повторяю» говорит мне, что это ваш код, который производит это, поэтому другие варианты должны быть доступны. – Jon
* «Мне просто нужно добавить {} вокруг него, а затем javascript увидит его как объект JSON». * Нет. Если вы добавите '{' и '}' в начале и конце, тогда у вас может быть строка содержащий действительный JSON (а не объект). Но это то, чего ты хочешь, верно? Если вы хотите использовать объект JavaScript, вам нужно передать новую строку в 'JSON.parse'. Я думаю, вам стоит взглянуть на http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/, чтобы лучше понять различия между объектами JSON и JavaScript , –
В принципе, я хочу иметь полезный объект, к которому я могу получить доступ через value.id, например, который я не могу сделать, когда это строка. – TrySpace