разрешить JSONException дубликаты ключей - PullRequest
4 голосов
/ 06 февраля 2011

Я использую систему пользовательского поиска Google и получаю результаты в формате JSON. Для некоторых запросов результат JSON имеет дубликаты ключей и, следовательно, он создает исключение JSONException: дубликат ключа "псевдоним" и т. Д.

iя использую JAVA.

String str=//contains the query result in json format
JSONObject ob=new JSONObject(str) produces the exception

может знать, как устранить это исключение?

вот ответ JSON:

{
   "kind": "customsearch#result",
   "title": "The World Factbook: India - CIA - The World Factbook",
   "htmlTitle": "The World Factbook: \u003cb\u003eIndia\u003c/b\u003e -",
   "link": "https://www.cia.gov/library/publications/the-world-factbook/geos/in.html",
   "displayLink": "www.cia.gov",
   "snippet": "Jan 20, 2011 ... Features a map and brief descriptions of geography",
   "htmlSnippet": "Jan 20, 2011 \u003",
   "cacheid": "0n2U45w_dvkJ",
   "pagemap": {
    "metatags": [
     {
      "il.secur.classif": "UNCLASSIFIED",
      "il.title": "(U) CIA The World Factbook",
      "il.summary": "CIA - The World Factbook",
      "il.cutdate": "20040101",
      "il.secur.classif": "UNCLASSIFIED",
      "il.title": "(U) CIA The World Factbook",
      "il.cutdate": "20040101",
      "il.secur.classif": "UNCLASSIFIED",
      "il.pubdate": "20040101",
      "il.postdate": "20040501",
      "il.cutdate": "20040101"
     }
    ]
   }
  }

здесь il.secur.classif встречается несколько разраз

Ответы [ 3 ]

7 голосов
/ 06 февраля 2011

Объект JSon, как и любой другой объект, не может иметь двух атрибутов с одинаковыми именами. Это незаконно так же, как дважды иметь на карте один и тот же ключ.

JSONObject выдает исключение, если у вас есть два ключа с одинаковым именем в одном объекте. Вы можете изменить свой объект, чтобы ключи не повторялись под одним и тем же объектом. Вероятно, рассмотрим nickname как массив.

Вам нужно вставить объект JSON в вопрос.

0 голосов
/ 04 декабря 2014

Вы можете использовать библиотеку Джексона для анализа JSON. У меня проблемы с выполнением той же задачи, что и у вас с пакетом org.json, но я повернулся к Джексону и решил: http://wiki.fasterxml.com/JacksonHome

0 голосов
/ 11 октября 2012

Если вам действительно нужна эта функциональность, откатитесь на gson 1.6.В этой версии разрешены дубликаты ключей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...