/ / Jak przekonwertować obiekt JSONobject na mapę obiektów? - java, json

Jak przekonwertować obiekt JSONobject na mapę obiektu? - java, json

Próbowałem stworzyć dynamikęsystem przechwytywania tekstu, aby łatwiej tłumaczyć przyszłe programy na różne języki. Jestem dość nowy w Javie, więc nie jestem dobrze zaznajomiony z typami danych, ale czy można wziąć obiekt JSON (używając simple.json) i przekonwertować go na coś, do czego mógłbym łatwo odwoływać się i treściwie?

Na przykład podany ciąg JSON:

{
"name": "John Doe",
"country": "US",
"age": 25,
"family": {
"immediate": {
"spouse": "Johnette Doe",
"children": [
{
"name": "Jimbles Doe",
"age": "213"
}
]
}
}
}

Jak mogę skonfigurować mój plik, aby móc do niego odwoływać w następujący sposób:

JohnClass.family.immediate.children[0].name

i uzyskać wartość w zamian?

Odpowiedzi:

1 dla odpowiedzi № 1

Zdobądź Jackson (użyj zależności od maven lub pobierz słoik): http://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind/2.5.0

Nieprzetestowany kod poniżej, a szczerze mówiąc, bezproblemowy punt, tylko po to, aby pomóc Ci szybko go posortować.

Utwórz JSONMapper (najlepiej w konstruktorze):

ObjectMapper mapper = new ObjectMapper();

Konwertuj na Hashmap (możesz również przekonwertować na dowolny inny obiekt):

Map map = mapper.readValue("JSON_STRING_HERE", new TypeReference<HashMap>(){});

Dostęp w ten sposób:

map.get("family").get("immediate").get("children").get(0).get("name");

Możesz także użyć JSONObject, który również implementuje interfejs Map, ale jeśli przyzwyczaisz się robić to w ten sposób, będziesz wiedział, jak to zrobić dla innych obiektów.