2015-11-17 2 views
0

У меня есть этот следующий JSon файлАнализировать Уплотненный Json без KEY

{"Abra":[ 
    "Bangued", 
    "Boliney", 
    "Bucay", 
    "Bucloc", 
    "Daguioman", 
    "Danglas"], 

    "Agusan del Norte":[ 
    "Buenavista", 
    "Butuan City", 
    "Cabadbaran City", 
    "Carmen", 
    "Jabonga", 
    "Kitcharao"] 
    } 

они представляют муниципалитеты в моей стране, так и внутри них город накрыли. Моя проблема в том, что я не знаю, как разбирать их в моем коде. Муниципалитеты не являются статичными, поскольку они зависят от отправителя в любом муниципалитете, который он хочет отправить. Может кто-нибудь помочь мне в том, что я должен делать. Я искал решения по всему Интернету, но я не нашел успеха. заранее спасибо.

ответ

1

Что вы можете сделать, это преобразование этого JSONObject в JSONArray вместо, например, следующее:

[ 
    "Abra":[ 
    "Bangued", 
    "Boliney", 
    "Bucay", 
    "Bucloc", 
    "Daguioman", 
    "Danglas"], 

    "Agusan del Norte":[ 
    "Buenavista", 
    "Butuan City", 
    "Cabadbaran City", 
    "Carmen", 
    "Jabonga", 
    "Kitcharao"] 
] 

Затем вы можете использовать метод get() из JSONArray позволяет получить элемент в указанной позиции.

Однако содержание каждого элемента, похоже, не является действительным JSON, поскольку оно выглядит как перечисление.

+0

Спасибо за ваш ответ, я уже попробовал то, что вы заявили, однако я получаю сообщение об ошибке, указывающем ** Незавершённой массив на характере 8 ** Возможно, потому что элементы не действительны JSON .. как то, что у вас есть сказал .. У меня действительно нет идеи, что является правильным json или нет .. так что спасибо .. Я буду изучать Json больше и использовать другой способ решения этой проблемы. – ErenRavenHeart

+0

Допустимый Json нужен ключ + его значение. Здесь у вас есть переименование (см. Здесь http://spacetelescope.github.io/understanding-json-schema/reference/generic.html). Если можно, лучшим решением является переформатирование вашего json. – Virthuss

+0

Согласен, я думаю, мне просто нужно отказаться от этого формата .. спасибо .. я посмотрю вашу ссылку – ErenRavenHeart

1

keys() вернет итератор для имен в объекте JSON. Его можно использовать для циклического перехода по клавишам и получения соответствующего массива.

JSONObject json = new JSONObject(""); 
Iterator<String> iterator = json.keys(); 
while(iterator.hasNext()){ 
    String key = iterator.next(); 
    JSONArray array = json.getJSONArray(key); 
} 
+0

Спасибо за ваш ответ, я пробовал это сразу же после того, как прочитал ваш ответ, однако я столкнулся с этой ошибкой ** Unterminated array at character 8 ** .. – ErenRavenHeart

+0

Если у вас возникли проблемы с форматированием json, вы можете запустить его через [json validator] (http://jsonlint.com/). Json, который вы опубликовали, действителен, поэтому я предполагаю, что вы не используете это. – tachyonflux

+0

В нем говорится, что мой json является действительным json .. – ErenRavenHeart

Смежные вопросы