Java json解析

Cak*_*tep 3 java parsing json

好吧,我现在已经尝试了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
}
Run Code Online (Sandbox Code Playgroud)

在数组/列表中.有帮助吗?

Fra*_*ulo 6

我在http://codehaus.org/上使用Jackson,到目前为止它已经满足了我的所有需求.

你并没有把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; }
    }
}
Run Code Online (Sandbox Code Playgroud)

映射器创建一个Pojo对象,其中填入了值.然后,您可以将该对象用于您需要的任何内容.

以下是Jackson项目的几个链接:

http://jackson.codehaus.org/

http://wiki.fasterxml.com/JacksonInFiveMinutes

最新的一体化JAR在这里:

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