#javascript #reactjs
#javascript #reactjs
Вопрос:
У меня есть этот вызов:
async getData(budget) {
const res = await fetch("/json/sample.txt");
const data = await res.text();
return this.setState({ data });
}
И мой sample.json отформатирован следующим образом:
{(150, 'Points'): {'0': {'name': 'Matheus', 'slug': 'matheus-galdezani',...}
Как я могу получить доступ, {'0': {'name': 'Matheus', 'slug': 'matheus-galdezani',...}
используя (150, 'Points')
в качестве ключа? Это допустимо JavaScript
?
Комментарии:
1. Это недопустимый JSON, поскольку там ключи не заключены в двойные кавычки, как и строки.
{(150, 'Points'):
также недопустимо — первая часть объектного литерала в JSON должна быть ключом, а не очевидным использованием оператора запятой (который разрешен в JS, но не в JSON)2. что, если это txt, тогда?
3. Затем вы должны исправить все, что генерирует текст, поскольку на данный момент он сильно поврежден. Вместо этого сгенерируйте его в формате JSON.
Ответ №1:
Я предлагаю.
[Изменить]
[Do not use]
{(150, 'Points'): {'0': {'name': 'Matheus', 'slug': 'matheus-galdezani',...}
[Use]
{'150,Points': {'0': {'name': 'Matheus', 'slug': 'matheus-galdezani',...}
Вы можете использовать ключ ‘150, Points’.
И вы можете преобразовать ‘150, Points’ в [‘150’, ‘Points’], используя разделение javascript
[Example]
const arr = '150,Points'.split(',') // ['150', 'Points'];
const num = Number(arr[0]); // 150
const str = arr[1]; // 'Points'