Ключ доступа Javascript в текстовом файле

#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'