JSON.simple - 如何正确访问嵌套的 JSON 对象
JSON.simple - How to correctly access nested JSON objects
我的 json 文件示例是
{
"collection": [
{
"trophy-name": {
"text": "swimming",
"text2": "fast swimming"
},
"length": "50m",
"pool": "outside",
"weather": "20"
}
]
}
现在我可以从长度、游泳池和天气中获取值。但我仍然坚持如何访问 嵌套数组 嵌套对象 trophy-name
.
我的代码是:
public class main {
public static void main(String[] args) throws FileNotFoundException, IOException, ParseException
{
JSONParser parser = new JSONParser();
Object obj = parser.parse(new FileReader("...")); // json path
JSONObject jsonObject = (JSONObject) obj;
JSONArray array = (JSONArray) jsonObject.get("collection");
for (Object number : array )
{
JSONObject testObj = (JSONObject) number;
String pool = (String)testObj.get("pool");
System.out.println(testObj.get("length"));
System.out.println(pool);
System.out.println(testObj.get("weather"));
}
}
}
这是我第一次试验 json 文件,所以我尝试使用它,所以代码不是很好。
我可能必须像这样创建新对象
JSONObject trophyObj = (JSONObject) jsonObject.get("trophy-name");
然后我应该可以从那里得到文本?
String troph = (String) trophyObj.get("text");
即使我是正确的,我也不确定如何将它实现到循环中,或者是否有更好的方法来执行循环?
不要介意以不同的方式重写代码,欢迎任何建议。
是的,你是对的,只需在循环中提取JSONObject
,然后获取所需的字段。
public class main {
public static void main(String[] args) throws FileNotFoundException, IOException, ParseException
{
JSONParser parser = new JSONParser();
Object obj = parser.parse(new FileReader("...")); // json path
JSONObject jsonObject = (JSONObject) obj;
JSONArray array = (JSONArray) jsonObject.get("collection");
for (Object number : array )
{
JSONObject testObj = (JSONObject) number;
String pool = (String)testObj.get("pool");
System.out.println(testObj.get("length"));
System.out.println(pool);
System.out.println(testObj.get("weather"));
JSONObject trophyObj = (JSONObject) testObj.get("trophy-name");
System.out.println((String)trophyObj.get("text"));
System.out.println((String)trophyObj.get("text2"));
}
}
}
我的 json 文件示例是
{
"collection": [
{
"trophy-name": {
"text": "swimming",
"text2": "fast swimming"
},
"length": "50m",
"pool": "outside",
"weather": "20"
}
]
}
现在我可以从长度、游泳池和天气中获取值。但我仍然坚持如何访问 嵌套数组 嵌套对象 trophy-name
.
我的代码是:
public class main {
public static void main(String[] args) throws FileNotFoundException, IOException, ParseException
{
JSONParser parser = new JSONParser();
Object obj = parser.parse(new FileReader("...")); // json path
JSONObject jsonObject = (JSONObject) obj;
JSONArray array = (JSONArray) jsonObject.get("collection");
for (Object number : array )
{
JSONObject testObj = (JSONObject) number;
String pool = (String)testObj.get("pool");
System.out.println(testObj.get("length"));
System.out.println(pool);
System.out.println(testObj.get("weather"));
}
}
}
这是我第一次试验 json 文件,所以我尝试使用它,所以代码不是很好。
我可能必须像这样创建新对象
JSONObject trophyObj = (JSONObject) jsonObject.get("trophy-name");
然后我应该可以从那里得到文本?
String troph = (String) trophyObj.get("text");
即使我是正确的,我也不确定如何将它实现到循环中,或者是否有更好的方法来执行循环? 不要介意以不同的方式重写代码,欢迎任何建议。
是的,你是对的,只需在循环中提取JSONObject
,然后获取所需的字段。
public class main {
public static void main(String[] args) throws FileNotFoundException, IOException, ParseException
{
JSONParser parser = new JSONParser();
Object obj = parser.parse(new FileReader("...")); // json path
JSONObject jsonObject = (JSONObject) obj;
JSONArray array = (JSONArray) jsonObject.get("collection");
for (Object number : array )
{
JSONObject testObj = (JSONObject) number;
String pool = (String)testObj.get("pool");
System.out.println(testObj.get("length"));
System.out.println(pool);
System.out.println(testObj.get("weather"));
JSONObject trophyObj = (JSONObject) testObj.get("trophy-name");
System.out.println((String)trophyObj.get("text"));
System.out.println((String)trophyObj.get("text2"));
}
}
}