Разъяснение в формате JSON

#json

#json

Вопрос:

Требуется разъяснение по формату JSON.

Я транслировал этот файл JSON из twitterstream, но при проверке JSONLint я получаю следующую ошибку.

 Error: Parse error on line 11:
...1554180840158"   }} {    "delete": {     "st
---------------------^
Expecting 'EOF', '}', ',', ']', got '{'
  

JSON-код:-

 {
    "delete": {
        "status": {
            "id": 1038195538020196352,
            "id_str": "1038195538020196352",
            "user_id": 1730046890,
            "user_id_str": "1730046890"
        },
        "timestamp_ms": "1554180840158"
    }
} {
    "delete": {
        "status": {
            "id": 761199968916955136,
            "id_str": "761199968916955136",
            "user_id": 715099043609751552,
            "user_id_str": "715099043609751552"
        },
        "timestamp_ms": "1554180840228"
    }
}
  

Комментарии:

1. То, что вы опубликовали, не является JSON, это 2 объекта JSON, разделенных пробелом.

Ответ №1:

JSONLint жалуется, что это недопустимый объект. Реально, у вас есть два объекта в вашем примере JSON. Каждый из них передает JSONLint, но ваша ошибка связана с «} {» в середине. Для разбора всего этого примера вам понадобится [в самом начале, запятая в середине двух объектов, например }, { и a ] в конце. Смотрите следующее

 [{
    "delete": {
        "status": {
            "id": 1038195538020196352,
            "id_str": "1038195538020196352",
            "user_id": 1730046890,
            "user_id_str": "1730046890"
        },
        "timestamp_ms": "1554180840158"
    }
}, {
    "delete": {
        "status": {
            "id": 761199968916955136,
            "id_str": "761199968916955136",
            "user_id": 715099043609751552,
            "user_id_str": "715099043609751552"
        },
        "timestamp_ms": "1554180840228"
    }
}]
  

Комментарии:

1. Спасибо, Джейми, я понял now.So twitter не отправляет весь файл в формате JSON, вместо этого отправляет несколько объектов JSON, связанных вместе.

Ответ №2:

Это не JSON — это два объекта JSON, разделенных пробелом. Вам нужно поместить их в массив:

 [{
    "delete": {
        "status": {
            "id": 1038195538020196352,
            "id_str": "1038195538020196352",
            "user_id": 1730046890,
            "user_id_str": "1730046890"
        },
        "timestamp_ms": "1554180840158"
    }
}, {
    "delete": {
        "status": {
            "id": 761199968916955136,
            "id_str": "761199968916955136",
            "user_id": 715099043609751552,
            "user_id_str": "715099043609751552"
        },
        "timestamp_ms": "1554180840228"
    }
}]