JSON(简单)解析文件返回空值

时间:2016-02-28 19:08:41

标签: java json

这是我第一次使用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。知道什么可能是错的吗?

1 个答案:

答案 0 :(得分:3)

这是因为 name 属性不在根目录中。

实际上,您在根目录中有一个 LEA 键,该属性的值是另一个Object,它包含以下键: name 代码 gathererCode magicCardsInfoCode 等......

因此,如果您想要提取 name 属性,则需要执行以下操作

JSONObject object = (JSONObject) jsonObject.get("LEA");
String name = (String) object.get("name");

这应解决问题。