Java 计算json文件中的特定对象

Java 计算json文件中的特定对象,java,json,Java,Json,下面是读取权力游戏Json文件的代码。 我已经编写了读取Json文件并将其打印到控制台的代码。 但是我想得到这个文件中的季数和剧集数。但是我没有得到想要的输出 这是示例json内容 "_embedded": { "episodes": [ { "id": 4952, "url": "http://www.tvmaze.com/episodes/4952/game-of-thrones-1x01-winter-is-coming", "name": "Winter i

下面是读取权力游戏Json文件的代码。 我已经编写了读取Json文件并将其打印到控制台的代码。 但是我想得到这个文件中的季数和剧集数。但是我没有得到想要的输出

这是示例json内容

 "_embedded": {
"episodes": [
  {
    "id": 4952,
    "url": "http://www.tvmaze.com/episodes/4952/game-of-thrones-1x01-winter-is-coming",
    "name": "Winter is Coming",
    "season": 1,
    "number": 1,
    "airdate": "2011-04-17",
    "airtime": "21:00",
    "airstamp": "2011-04-17T21:00:00-04:00",
    "runtime": 60,
    "image": {
      "medium": "http://static.tvmaze.com/uploads/images/medium_landscape/1/2668.jpg",
      "original": "http://static.tvmaze.com/uploads/images/original_untouched/1/2668.jpg"
    },
    "summary": "\u003cp\u003eLord Eddard Stark, ruler of the North, is summoned to court by his old friend, King Robert Baratheon, to serve as the King\u0027s Hand. Eddard reluctantly agrees after learning of a possible threat to the King\u0027s life. Eddard\u0027s bastard son Jon Snow must make a painful decision about his own future, while in the distant east Viserys Targaryen plots to reclaim his father\u0027s throne, usurped by Robert, by selling his sister in marriage.\u003c/p\u003e",
    "_links": {
      "self": {
        "href": "http://api.tvmaze.com/episodes/4952"
      }
    }
  },
这是我的代码,它将数据读取到控制台,但无法从文件中计算特定对象

 package readingdifferentfileformats;

 import java.io.BufferedReader;
 import java.io.FileReader;

 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 import com.google.gson.JsonArray;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;

 //Read Json File, and print to console

 public class ReadingGOTJsonFile {

    public static void main(String[] args) {

        JsonParser jsonParser = new JsonParser();

        try {
            BufferedReader br = new BufferedReader(new FileReader("E:\\workspace\\textfile\\got.json"));
            String line;
            while ((line = br.readLine()) != null) {
                JsonObject jsonObject = (JsonObject) jsonParser.parse(line);
                // System.out.println(jsonObject);

                Gson gson = new GsonBuilder().setPrettyPrinting().create();
                String prettyJson = gson.toJson(jsonObject);

                System.out.println(prettyJson);

                JsonArray jsonArray = jsonObject.getAsJsonArray("season");
                for (int i = 0; i < jsonArray.size(); i++) {
                    JsonObject object = jsonArray.getAsJsonObject(i);
                }
                System.out.println(object);



            }
            br.close();

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

 }
包读取不同的文件格式;
导入java.io.BufferedReader;
导入java.io.FileReader;
导入com.google.gson.gson;
导入com.google.gson.GsonBuilder;
导入com.google.gson.JsonArray;
导入com.google.gson.JsonElement;
导入com.google.gson.JsonObject;
导入com.google.gson.JsonParser;
//读取Json文件,并打印到控制台
公共类ReadingGOTJsonFile{
公共静态void main(字符串[]args){
JsonParser JsonParser=新的JsonParser();
试一试{
BufferedReader br=new BufferedReader(新文件阅读器(“E:\\workspace\\textfile\\got.json”);
弦线;
而((line=br.readLine())!=null){
JsonObject JsonObject=(JsonObject)jsonParser.parse(行);
//System.out.println(jsonObject);
Gson Gson=new GsonBuilder().setPrettyPrinting().create();
字符串prettyJson=gson.toJson(jsonObject);
System.out.println(prettyJson);
JsonArray JsonArray=jsonObject.getAsJsonArray(“季节”);
for(int i=0;i
这是我问题的最后一个代码

 package readingdifferentfileformats;

 import java.io.File;
 import java.io.FileReader;
 import java.io.FileWriter;
 import java.util.ArrayList;
 import java.util.List;

 import com.google.gson.JsonArray;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;

 //Read Json File, and print to console

 public class ReadingGOTJsonFile {

public static final String delimiter = ",";
public static final String new_line = "\n";
public static final String Header = "id,url,name,season,number,airdate,airstamp,airtime,runtime,summary";

public static void main(String[] args) {

    JsonParser parser = new JsonParser();
    List<GotClassFile> l = new ArrayList<GotClassFile>();
    try {
        JsonElement jElement = parser.parse(new FileReader(new File("E:\\workspace\\textfile\\got.json")));
        JsonObject jObject = jElement.getAsJsonObject();
        JsonObject embedded = jObject.get("_embedded").getAsJsonObject();
        JsonArray episodes = embedded.get("episodes").getAsJsonArray();

        // System.out.println(jObject);
        // System.out.println(embedded);
        // System.out.println(episodes.size());

        for (JsonElement episode : episodes) {
            JsonObject jsonObject = episode.getAsJsonObject();

            GotClassFile classFile = new GotClassFile(jsonObject.get("id").getAsString(),
                    jsonObject.get("url").getAsString(), jsonObject.get("name").getAsString(),
                    jsonObject.get("season").getAsString(), jsonObject.get("number").getAsString(),
                    jsonObject.get("airdate").getAsString(), jsonObject.get("airstamp").getAsString(),
                    jsonObject.get("airtime").getAsString(), jsonObject.get("runtime").getAsString(),
                    jsonObject.get("summary").toString());
            l.add(classFile);
        }

        FileWriter fileWriter = new FileWriter(new File("E:\\workspace\\textfile\\Got.csv"));
        fileWriter.append(Header);
        fileWriter.append(new_line);

        for (GotClassFile f : l) {

            fileWriter.append("\"" + f.getId() + "\"");
            fileWriter.append(delimiter);
            fileWriter.append("\"" + f.getUrl() + "\"");
            fileWriter.append(delimiter);
            fileWriter.append("\"" + f.getName() + "\"");
            fileWriter.append(delimiter);
            fileWriter.append("\"" + f.getSeason() + "\"");
            fileWriter.append(delimiter);
            fileWriter.append("\"" + f.getNumber() + "\"");
            fileWriter.append(delimiter);
            fileWriter.append("\"" + f.getAirdate() + "\"");
            fileWriter.append(delimiter);
            fileWriter.append("\"" + f.getAirstamp() + "\"");
            fileWriter.append(delimiter);
            fileWriter.append("\"" + f.getAirtime() + "\"");
            fileWriter.append(delimiter);
            fileWriter.append("\"" + f.getRuntime() + "\"");
            fileWriter.append(delimiter);
            fileWriter.append("\"" + f.getsummary() + "\"");
            fileWriter.append(new_line);

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

    }
}

 }
包读取不同的文件格式;
导入java.io.File;
导入java.io.FileReader;
导入java.io.FileWriter;
导入java.util.ArrayList;
导入java.util.List;
导入com.google.gson.JsonArray;
导入com.google.gson.JsonElement;
导入com.google.gson.JsonObject;
导入com.google.gson.JsonParser;
//读取Json文件,并打印到控制台
公共类ReadingGOTJsonFile{
公共静态最终字符串分隔符=“,”;
公共静态最终字符串new_line=“\n”;
public static final String Header=“id、url、名称、季节、编号、airdate、airstamp、airtime、runtime、summary”;
公共静态void main(字符串[]args){
JsonParser=新的JsonParser();
列表l=新的ArrayList();
试一试{
JsonElement-jElement=parser.parse(新文件阅读器(新文件(“E:\\workspace\\textfile\\got.json”));
JsonObject jObject=jeelement.getAsJsonObject();
JsonObject embedded=jObject.get(“_embedded”).getAsJsonObject();
JsonArray片段=embedded.get(“片段”).getAsJsonArray();
//系统输出打印项次(jObject);
//System.out.println(嵌入式);
//System.out.println(scents.size());
对于(JsonElement插曲:插曲){
JsonObject JsonObject=eposit.getAsJsonObject();
GotClassFile classFile=新的GotClassFile(jsonObject.get(“id”).getAsString(),
jsonObject.get(“url”).getAsString(),jsonObject.get(“name”).getAsString(),
jsonObject.get(“季节”).getAsString(),jsonObject.get(“数字”).getAsString(),
jsonObject.get(“airdate”).getAsString(),jsonObject.get(“airstamp”).getAsString(),
jsonObject.get(“airtime”).getAsString(),jsonObject.get(“runtime”).getAsString(),
jsonObject.get(“summary”).toString();
l、 添加(类文件);
}
FileWriter FileWriter=newfilewriter(新文件(“E:\\workspace\\textfile\\Got.csv”);
追加(头文件);
fileWriter.append(新行);
for(gotclass文件f:l){
追加(“\”+f.getId()+“\”);
追加(分隔符);
追加(“\”+f.getUrl()+“\”);
追加(分隔符);
追加(“\”+f.getName()+“\”);
追加(分隔符);
追加(“\”+f.getSeason()+“\”);
追加(分隔符);
追加(“\”+f.getNumber()+“\”);
追加(分隔符);
追加(“\”+f.getAirdate()+“\”);
追加(分隔符);
追加(“\”+f.getAirstamp()+“\”);
追加(分隔符);
追加(“\”+f.getAirtime()+“\”);
追加(分隔符);
追加(“\”+f.getRuntime()+“\”);
追加(分隔符);
追加(“\”+f.getsummary()+“\”);
fileWriter.append(新行);
}
fileWriter.close();
}捕获(例外e){
e、 printStackTrace();
}
}
}

我在您的代码中没有看到任何试图计数的内容。你是如何计数的?我使用了json数组,并通过使用getasJsonArray来计算季节数,我正在从该数组中打印它。。。但输出正在打印null@ismailbasha:System.out.println(prettyJson)的输出是什么;?另外,您是否打算将System.out.println(对象)放入循环中?PrittyPrinting用于将json文件格式化为json。我已使用tht以正确的格式打印输出。