Как мы собираемся анализировать следующий тип объекта в angular или javascript, возможно, используя цикл поиска или синтаксический анализ?
Я хотел получить значение title и присвоить его title, потому что, как видите, значением title является объект:
{'title': 'Hey', 'instruction': 'Take a sad song a…75, 'sub_title': 'Jude', 'timelimit': '01:05:01'}
вместо «Привет», как вы можете видеть на примере (то же самое и со вторым объектом). Есть ли способ сделать это?
[
{
id:0,
title:"{'title': 'Hey', 'instruction': 'Take a sad song a…75, 'sub_title': 'Jude', 'timelimit': '01:05:01'}"
},
{
id:1,
title:"{'title': 'Assessment', 'instruction': 'Jude', 'cr…71, 'sub_title': 'Test', 'timelimit': '06:25:08'}"
}
]
[
{
id:0,
title:"Hey"
},
{
id:1,
title:"Assessment"
}
]
поясните пожалуйста чего вы хотите добиться
я обновил свой вопрос
ваше значение заголовка не соответствует правильной строке.... проверьте свой заголовок
есть ли решение, использующее этот формат>?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Убедитесь, что у вас правильный формат в json - двойные кавычки внутри и одинарные снаружи.
Так
'{"title": "Hey", "instruction": "Take a sad song a…75", "sub_title": "Jude", "timelimit": "01:05:01"}'
Тогда вы можете просто сделать.
let jsonString = '{"title": "Hey", "instruction": "Take a sad song a…75", "sub_title": "Jude", "timelimit": "01:05:01"}';
let title = JSON.parse(jsonString).title;
console.info(title);приведенный выше пример уже является ответом, который я получил, я могу изменить формат.
Второй пример 'instruction': 'Jude', 'cr…71, 'sub_title' точно неверный json, можете подтвердить, что вы получили ответ?
Я получил эти данные из API, это данные ответа
Я думаю, вы скопировали напрямую, как показано в инструментах разработчика. Проблема в том, что там не будет отображаться полный ответ, так как данные могут быть слишком длинными, и поэтому при копировании вы скопировали только частичный ответ и это слишком недопустимый формат.
var jsonObj = [
{
id:0,
title:"{'title': 'Hey', 'instruction': 'Take a sad song a…75, 'sub_title': 'Jude', 'timelimit': '01:05:01'}"
},
{
id:1,
title:"{'title': 'Assessment', 'instruction': 'Jude', 'cr…71, 'sub_title': 'Test', 'timelimit': '06:25:08'}"
}
];
var updatedJsonObj = jsonObj.map( obj => {
return {
...obj,
title: JSON.parse(obj.title).title
}
});
console.info(updatedJsonObj);
//updatedJsonObj will have your required format@JhonCaylog спасибо за упоминание, исправил ответ
Неожиданный токен 'в JSON в позиции 1
@JhonCaylog JSON, который вы предоставили, имеет проблемы, у вас есть правильный json? например: "{'title': 'Привет', 'instruction': 'Возьмите грустную песню… 75, 'sub_title': 'Jude', 'timelimit': '01:05:01'}" отсутствует сингл цитата, а другой - совершенно неправильный json, если вы не укажете правильный json, никакое решение не сможет работать с этим набором данных. Пожалуйста, исправьте объект json
это данные ответа, которые я получил от api bro
есть ли способ скрыть отсутствующую одинарную кавычку и сделать ее правильным json? не делая это вручную
когда вы используете его в своей программе, вы получите полный ответ (json), и тогда он будет работать, ничего там делать не нужно
Здесь мы делаем следующие шаги
title.replace(/'/g, '"'). Затем разберите JSON.Вот код
arr = [
{
id:0,
title:"{'title': 'Hey', 'instruction': 'Take a sad song a…75', 'sub_title': 'Jude', 'timelimit': '01:05:01'}"
},
{
id:1,
title:"{'title': 'Assessment', 'instruction': 'Jude', 'sub_title': 'Test', 'timelimit': '06:25:08'}"
}
]
arr = arr.map((e)=> { e.title = JSON.parse(e.title.replace(/'/g, '"')).title; return e; })
// expected result is in arr
.
Неожиданный токен t в JSON на позиции 117
Он работает, как и ожидалось, в консоли браузера, вы можете попробовать его в консоли.
привет бро у меня вопрос
В чем вопрос? Пожалуйста спросите
Поскольку другие заявили, что ваш json недействителен, но, поскольку вы упомянули, что это то, что вы получаете от своего бэкэнда, и вы не можете его изменить, я предлагаю рассматривать ваш заголовок как строку и использовать строковые операции, чтобы получить желаемое значение.
например, вы можете использовать следующее, чтобы получить идентификатор и название
<div ng-repeat = "item in data">
{{item.id}} -
{{item.title.split('\'')[3]}}
</div>
Не очень понятно, что вы пытаетесь сделать, можете ли вы объяснить это получше? В вашем первом фрагменте JSON title — это строка, а не объект, во втором фрагменте — массив из двух элементов, title — это объект, что вы пытаетесь сделать?