2017-02-21 14 views
0

У меня есть файл JSON, который я пытаюсь проанализировать, который не имеет квадратных квадратных скобок: [...].Java: Gson parse без квадратных скобок

Here - код Java. (Это имеет зависимость от Gson в Maven). Я продолжаю получать ошибку в строке 29: «Это не массив JSON». Однако, когда я добавляю квадратные скобки к началу и концу файла JSON, он отлично разбирает. Как я могу разобрать это без скобок.

Вот JSON:

{ 
    "title": "Title", 
    "content": "whatever", 
    "author": "Yuki Noguchi", 
    "date_published": "2017-02-15T20:25:00.000Z", 
    "lead_image_url": "https://media.npr.org/assets/img/2017/02/15/ap_17039860769171_wide-d1a5d3c17f00d78fd1df9d19a96e1d7b3bd38e60.jpg?s=1400", 
    "dek": null, 
    "next_page_url": null, 
    "url": "http://www.npr.org/2017/02/15/515425370/trump-labor-pick-andrew-puzders-nomination-appears-in-jeopardy", 
    "domain": "www.npr.org", 
    "excerpt": "The fast-food CEO faced fierce opposition from labor groups, plus personal controversies. Ultimately, he didn't have support from enough Republican senators.", 
    "word_count": 751, 
    "direction": "ltr", 
    "total_pages": 1, 
    "rendered_pages": 1 
} 

Спасибо!

+4

Анализировать его в 'JsonObject' вместо массива. – Zircon

+0

Как я могу это сделать? – werdna3232

+1

в строке 29 вы пытаетесь получить массив, даже если у вас нет массива. Вместо того, чтобы пытаться получить массив, получите JsonObject, как упомянули другие. – Coder

ответ

0

Попробуйте это, добавьте "[" открыть и "]" закрыть фигурные скобки и сохранить во временной переменной и передать эту временную переменную для синтаксического анализа.

, например,

var jsonVar = { name:"hello", title: "WOrld" }; 
var tmpJsonVar = "[" + jsonVar + "]"; 
var jsonObject = JSON.parse(tmpJsonVar);