这是我第一次使用JSON文件,所以我选择了简单的JSON库。这是有效的:
$ git rev-list --all --not <ancestor> --pretty=oneline
所以import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class ParseCardJSON {
public static void main(String[] args) {
JSONParser parser = new JSONParser();
Object obj;
try {
obj = parser.parse(new FileReader("C:\\Users\\owner\\Desktop\\A\\programming\\workspace\\MTG\\AllSets.json"));
JSONObject jsonObject = (JSONObject) obj;
System.out.println(obj.toString());
String name = (String) jsonObject.get("name");
String color = (String) jsonObject.get("power");
System.out.println("Name: " + name);
System.out.println("color: " + color);
} catch (Exception e) {
e.printStackTrace();
}
}
}
打印出我期待的内容:
System.out.println(obj.toString());
但“名称”和“颜色”({"LEA":{"name":"Limited Edition Alpha","code":"LEA","gathererCode":"1E","magicCardsInfoCode":"al","releaseDate":"1993-08-05","..)...
是prinln
。知道什么可能是错的吗?
答案 0 :(得分:3)
这是因为 name 属性不在根目录中。
实际上,您在根目录中有一个 LEA 键,该属性的值是另一个Object,它包含以下键: name ,代码, gathererCode , magicCardsInfoCode 等......
因此,如果您想要提取 name 属性,则需要执行以下操作
JSONObject object = (JSONObject) jsonObject.get("LEA");
String name = (String) object.get("name");
这应解决问题。