Tree prepresentation
利用JsonElement建立LinkedTreeMap来解析json,使用isJsonObject(),isJsonNull()等方法确定JsonElement的类型,利用getAsJsonObject(),getAsJsonPrimitive()等方法拿到对象
代码如下:
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.commons.io.IOUtils;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
public class ParseTokenTree {
public static void main(String[] args) throws MalformedURLException, IOException {
// TODO Auto-generated method stub
String url = "http://freemusicarchive.org/api/get/albums.json?api_key=60BLHNQCAOUFPIBZ&limit=5";
String json = IOUtils.toString(new URL(url));
JsonParser parser = new JsonParser();
JsonElement element = parser.parse(json);
if (element.isJsonObject()) {
JsonObject albums = element.getAsJsonObject();
System.out.println(albums.get("title").getAsString());
JsonArray datasets = albums.getAsJsonArray("dataset");
for (int i = 0; i < datasets.size(); i++) {
JsonObject dataset = datasets.get(i).getAsJsonObject();
System.out.println("album title: " + dataset.get("album_title").getAsString());
System.out.println("artist: " + dataset.get("artist_name").getAsString());
}
}
}
}