Google Readerのstarred.jsonをとりあえず読み込むJava

投稿者: | 2023年1月23日

GoogleReaderで残された「スター付きアイテム」を保存したJSONファイル starred.jsonをとりあえず読み込むJavaのソースです。

JacksonのObjectMapperを使用しています。

getter / setterを定義すれば組み立ててくれるので便利でした。

しかし、これだけ書いたのに、CoffeeScriptに持って行ったら10行かかりませんでした。

import java.io.*;
import java.lang.reflect.Type;
import java.net.URL;
import java.text.DateFormat;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import com.fasterxml.jackson.annotation.*;
import com.fasterxml.jackson.core.*;
import com.fasterxml.jackson.core.io.*;
import com.fasterxml.jackson.core.util.*;
import com.fasterxml.jackson.databind.cfg.BaseSettings;
import com.fasterxml.jackson.databind.cfg.HandlerInstantiator;
import com.fasterxml.jackson.databind.cfg.MapperConfig;
import com.fasterxml.jackson.databind.deser.*;
import com.fasterxml.jackson.databind.*;

class JacksonTest{
public static void main( String[] args) {
StarredByGoogleReader str;
try{
ObjectMapper mapper = new ObjectMapper();

//str = mapper.readValue(new File(“ministarred.json”), StarredByGoogleReader.class);
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
str = mapper.readValue(new File(“starred-old.json”), StarredByGoogleReader.class);

for (int i = 0; i< str.items.length;i++){
System.out.println(str.items[i].title);
}

}catch(Exception e){
e.printStackTrace();
}
}
}

class StarredByGoogleReader{
String id;
String title;
String author;
long updated;
String direction;
StarredItem[] items;

public String getId() { return id; }
public void setId(String s) { id = s; }
public String getTitle() { return title; }
public void setTitle(String s) { title = s; }
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public long getUpdated() {
return updated;
}
public void setUpdated(long updated) {
this.updated = updated;
}
public String getDirection() {
return direction;
}
public void setDirection(String direction) {
this.direction = direction;
}
public StarredItem[] getItems() {
return items;
}
public void setItems(StarredItem[] items) {
this.items = items;
}


}

class Canonical{
String href;

public String getHref() {
return href;
}

public void setHref(String href) {
this.href = href;
}

}
class Alternate{
String href;
String type;
public String getHref() {
return href;
}
public void setHref(String href) {
this.href = href;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}

}
class Content{
String direction;
String content;
public String getDirection() {
return direction;
}
public void setDirection(String direction) {
this.direction = direction;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}

}
class Origin{
String streamId;
String title;
String htmlUrl;
public String getStreamId() {
return streamId;
}
public void setStreamId(String streamId) {
this.streamId = streamId;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getHtmlUrl() {
return htmlUrl;
}
public void setHtmlUrl(String htmlUrl) {
this.htmlUrl = htmlUrl;
}

}
class StarredItem{
boolean isReadStateLocked;
long crawlTimeMsec;
long timestampUsec;
String id;
String[] categories;
String title;
long published;
long updated;

Canonical[] canonical;
Alternate[] alternate;
Content content;
Content summary;
String author;
String[] comments;
String[] annotations;
Origin origin;

public long getCrawlTimeMsec() {
return crawlTimeMsec;
}
public void setCrawlTimeMsec(long crawlTimeMsec) {
this.crawlTimeMsec = crawlTimeMsec;
}
public long getTimestampUsec() {
return timestampUsec;
}
public void setTimestampUsec(long timestampUsec) {
this.timestampUsec = timestampUsec;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String[] getCategories() {
return categories;
}
public void setCategories(String[] categories) {
this.categories = categories;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public long getPublished() {
return published;
}
public void setPublished(long published) {
this.published = published;
}
public long getUpdated() {
return updated;
}
public void setUpdated(long updated) {
this.updated = updated;
}

public Canonical[] getCanonical() {
return canonical;
}
public void setCanonical(Canonical[] canonical) {
this.canonical = canonical;
}
public Alternate[] getAlternate() {
return alternate;
}
public void setAlternate(Alternate[] alternate) {
this.alternate = alternate;
}
public Content getContent() {
return content;
}
public void setContent(Content content) {
this.content = content;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String[] getComments() {
return comments;
}
public void setComments(String[] comments) {
this.comments = comments;
}
public String[] getAnnotations() {
return annotations;
}
public void setAnnotations(String[] annotations) {
this.annotations = annotations;
}
public Origin getOrigin() {
return origin;
}
public void setOrigin(Origin origin) {
this.origin = origin;
}
public Content getSummary(){
return summary;
}
public void setSummary(Content summary){ this.summary = summary; }

}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です