Java JSON Parse - PullRequest
       3

Java JSON Parse

3 голосов
/ 28 октября 2011

Ну, я пытаюсь около 3 часов. Используя много API, он все еще не работает.

пытаюсь разобрать

{
  "id": 8029390,
  "uid": "fdABNhroHsr0",
  "user": {
    "username": "Skrillex",
    "permalink": "skrillex"
  },
  "uri": "/skrillex/cat-rats",
  "duration": 305042,
  "token": "VgA2a",
  "name": "cat-rats",
  "title": "CAT RATS",
  "commentable": true,
  "revealComments": true,
  "commentUri": "/skrillex/cat-rats/comments/",
  "streamUrl": "http://media.soundcloud.com/stream/fdABNhroHsr0?stream_token=VgA2a",
  "waveformUrl": "http://w1.sndcdn.com/fdABNhroHsr0_m.png",
  "propertiesUri": "/skrillex/cat-rats/properties/",
  "statusUri": "/transcodings/fdABNhroHsr0",
  "replacingUid": null,
  "preprocessingReady": null
}

в массив / список. Любая помощь?

Ответы [ 2 ]

6 голосов
/ 29 октября 2011

Я использую Джексона из http://codehaus.org/, и до сих пор он оправдал все мои потребности.

Вы не совсем имеете дело с json как с необработанными строками в arraylist, а скорее с POJO, вот быстрый пример с подмножеством вашего json.

public class JacksonExample {
    public static void main(String[] args) throws JsonParseException, JsonMappingException, IOException {
        String text = "{ \"id\": 8029390, \"user\": { \"username\": \"Skrillex\" } }";

        ObjectMapper mapper = new ObjectMapper();
        Pojo pojo = mapper.readValue(text, Pojo.class);

        System.out.println(pojo.id);
        System.out.println(pojo.user.username);
    }
}

class Pojo {
    public String id;
    public User user;

    public String getId() { return id; }
    public void setId(String id) { this.id = id; }

    public User getUser() { return user; }
    public void setUser(User user) { this.user = user; }

    public static class User {
        public String username;

        public String getUsername() { return username; }
        public void setUsername(String username) { this.username = username; }
    }
}

Mapper создает объект Pojo с заполненными значениями. Затем вы можете использовать этот объект для всего, что вам нужно.

Вот несколько ссылок на проект Джексона:

http://jackson.codehaus.org/

http://wiki.fasterxml.com/JacksonInFiveMinutes

Последний все в одном JAR здесь:

http://jackson.codehaus.org/1.9.1/jackson-all-1.9.1.jar

1 голос
/ 23 ноября 2011

Вы должны попробовать JavaJson из исходного кода ... вы можете разобрать это следующим образом:

JsonObject json = JsonObject.parse("...");
/*
 * or also JsonObject.parse(inputStream);
 */
then you can get fields this way:
String title = json.getString("title");
String username = json.get("user", "username").toString();

и так далее. вот ссылка: https://sourceforge.net/projects/javajson/

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