我正在制作一个java程序,从mtgjson读取数据,将每个卡保存为一个自定义类,然后使用gson将所有这些卡写入另一个json文件。(我发现使用gson无法从mtgjson中读取数据,但使用json.simple可以。)似乎代码以奇怪的顺序读取对象,然后并没有将每张卡都保存到列表中,然后在整个列表用json编写之前,它突然断开。这里是json文件的下载。https://www.mtgjson.com/json/allsets.json import com.google.gson.Gson; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException;
import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.List;
public class DatabaseTrimmer {
public static void main(String[] args) throws IOException, ParseException {
JSONObject ALLSETS = (JSONObject) new JSONParser().parse(new FileReader("AllSets.json"));
List<MTGCard> AllCards = new ArrayList<>();
for(Object o: ALLSETS.values()) {
JSONObject set = (JSONObject)o;
JSONArray cards = (JSONArray) (set.get("cards"));
for (Object card : cards) {
MTGCard tempCard = new MTGCard((JSONObject) card);
if (!tempCard.isReprint) {
AllCards.add(tempCard);
}
}
}
Gson gson = new Gson();
FileWriter writer = new FileWriter("TrimmedAllSets.json");
gson.toJson(AllCards, writer);
}
} 要保存到allcards列表的最后一张卡是“volrath's motion sensor”,它是特定集合的最后一张卡,但不是按字母顺序排列的最后一张。mtgcard类存储每个卡的许多属性,如名称和文本。输出json的结尾如下所示: beginning of your upkeep, roll two six-sided dice. If you rolled 7, sacrifice Spark Fiend. If you roll the noted total, don\u0027t roll dice for Spark Fiend during any of your 如您所见,它只是切断。我查找了有关gson写入限制的任何内容,但找不到任何内容。另外,我试图使代码从另一点开始,或阅读一个较小的部分,但它仍然会被任意截断。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。