@fsfsfs32

Как получить элемент из массива json в java ассоциативно (vk longpool)?

При обращениии к серверу вконтакте для получения данных для long pool запроса я получаю такой ответ:
Array
(
    [response] => Array
        (
            [key] => 3frf4b6e17478cеf5c463c4f14a5afcd93208412a
            [server] => https://lp.vk.com/wh123264621
            [ts] => 15
        )

)


Как получить все эти параметры в java из org.json?

Мой код:
import org.json.*;

public class test123 {
    public static void main(String args[]){
        String json = "{"response":{"key":"12312","server":"12312312","ts":"231"}}"; // (with `\` before ` " ` )

        JSONObject o = new JSONObject(json);
        JSONArray a = o.getJSONArray("response");
        String out = (String) a.get("key");
        System.out.println(out);
    }
}


ну и это конечно не работает тк для a.get нужен int. как сделать это ```ассоциативно```
  • Вопрос задан
  • 753 просмотра
Пригласить эксперта
Ответы на вопрос 1
johnny_jla
@johnny_jla
Java Developer
Если нужно получить не весь объект, а какие то ноды:
String json = "{"response":{"key":"12312","server":"12312312","ts":"231"}}";
ObjectMapper mapper = new ObjectMapper();
 JsonNode jsonNode = mapper.readTree(json);
 String key = jsonNode.get("key").asText();

Если нужно смапить на объект, то:
ObjectMapper mapper = new ObjectMapper()
YourObject obj = mapper.readValue(jsonString, YourObject.class);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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