JSON в Groovy парсер

Вы можете добавить пробный путь в файл .config вашего приложения, но он будет работать, только если путь обнаружения содержится в базовом каталоге вашего приложения.

21
задан Gzorg 10 December 2009 в 23:59
поделиться

3 ответа

Поскольку скомпилированные классы Groovy совместимы с классами Java, вы должны иметь возможность использовать любую библиотеку Java для преобразования JSON в POJO (или POGO). Jackson - довольно популярный выбор, который вы можете использовать для преобразования JSON следующим образом:

String json = '{
  "name" : { "first" : "Joe", "last" : "Sixpack" },
  "gender" : "MALE",
  "verified" : false,
  "userImage" : "Rm9vYmFyIQ=="
}'

в Map, используя:

Map<String,Object> userData = mapper.readValue(json, Map.class)

Или, если вы хотите преобразовать JSON в класс Groovy User:

User userData = mapper.readValue(json, User.class)

Это сопоставит свойства в классе Groovy с ключами в JSON.

13
ответ дан 29 November 2019 в 06:35
поделиться

JSON-lib утверждает, что может преобразовывать POGO в JSON и обратно. Если POGO означает то, что я думаю (Обычный старый Groovy Object), все готово :).

Они приводят следующий пример:

def strAsJsonObject = "{integer:1, bool: true}" as JSONObject

Обновление :

Я сам пробовал библиотеку, это это полный код:

import net.sf.*;
import net.sf.json.*;
import net.sf.json.groovy.*;

println "hi"
GJson.enhanceClasses()
def strAsJsonObject = "{integer:1, bool: true}" as JSONObject
println strAsJsonObject

Он будет преследовать вас через марафон загрузки зависимостей (ezmorph, commons lang, commons logger), и как только вы разрешите их все, вы получите следующее:

Exception in thread » главный" org.codehaus.groovy.runtime.typehandling.GroovyCastException: Невозможно преобразовать объект '{integer: 1, bool: true} 'с классом' java.lang.String ' в класс 'net.sf.json.JSONObject'

Согласно Список рассылки , вы получили это за то, что не вызывали GJsonlib.enhanceClasses (), но я это вызвал, как вы можете видеть выше.

Я пришел к выводу, что возненавидеть Groovy JSON-lib стоит.

6
ответ дан 29 November 2019 в 06:35
поделиться

Я использую JSON-lib в HTTPBuilder , но я использую класс JSONSlurper для синтаксического анализа строки в экземпляр JSON:

JSON jsonMapObject = new JsonSlurper().parse( "{integer:1, bool: true}" );

Для перехода от объекта к JSON, я делаю это:

//from a map:
new JSONObject().putAll( [one:'1', two:'two']).toString()
//from an object:
JSONObject.fromObject( somePOGO ).toString()
4
ответ дан 29 November 2019 в 06:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: