Как разбирать JSON файл в Javascript?

63
8

У меня есть файл JSON, который содержит следующее:

[
{
"name": "Joshia \"Placement\" Fonz",
"color": "white"
},
{
"name": "Trin Brin",
"color": "black"
},
{
"name": "Su Et",
"color": "yellow"
}
]

И я хотел бы проанализировать его, чтобы использовать массив и объекты для приложения. Итак, './students.json' являющийся путем для файла JSON, я попытался использовать JSON.parse('./students.json') но получил сообщение об ошибке Uncaught SyntaxError: Unexpected token. in JSON at position 0 Uncaught SyntaxError: Unexpected token. in JSON at position 0 и попытался JSON.stringify('./students.json') но он просто вернул мне точную строку пути './students.json'.

Могу ли я проанализировать JSON файл в Javascript для использования массива?

Спасибо

спросил(а) 2021-01-19T16:53:58+03:00 3 месяца, 2 недели назад
1
Решение
63

Вы должны использовать для этого запрос ajax, jQuery ($) предоставляет абстракцию для XHR.

$.get("./students.json", function(data){
//success callback
// data is the json you requested already parsed
}, "json");

Является самым быстрым способом достижения вашей цели, поскольку по умолчанию клиентская сторона не может читать файл с сервера, даже если есть file API для чтения на стороне клиента, но я предполагаю, что в этом случае он может предоставить вам больше проблемы, которые он фактически решает.


файл

FileReader

ответил(а) 2021-01-19T16:53:58+03:00 3 месяца, 2 недели назад
62

Это потому, что вы разбираете строку "./students.json", а не то, что находится внутри файла. Вы должны открыть файл, а затем взять информацию. Этот пример можно использовать для чтения файла qaru.site/questions/36391/.... Затем используйте JSON.parse для контента.

ответил(а) 2021-01-19T16:53:58+03:00 3 месяца, 2 недели назад
44

JSON - это ангажированный javascript, поэтому вы можете просто добавить на свою страницу:

<script language="JavaScript" type="text/javascript" src="./students.json"></script>

ответил(а) 2021-01-19T16:53:58+03:00 3 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема