Ich versuche auf ein Element in einem meiner JSONObject zuzugreifen. Ich verwende json-einfach-1.1.1.jar. Ich kann auf den ersten "Kurs" zugreifen, wie Sie im Code sehen. Das Problem ist, ich kann nicht auf die Elemente wie "CourseNo" oder "SubjectName" zugreifen.Warum gibt JSONObject.get ("name") null zurück?
Meine JSON-Daten sind:
[
{
Course: {
SubjectName: "ACCT",
CourseNo: "201",
SectionNo: "A",
Instructors: [
{
Name: "AYLÄ°N SUNA",
Surname: "ÖZKAYA",
IsPrimary: true
}
],
Schedule: [
{
StartDate: "/Date(1347829200000)/",
FinishDate: "/Date(1356645600000)/",
MeetingTime: [
{
.... and it goes like that.
Dies ist nur das erste Element natürlich Array (Kurs [0]). Ich kann es erreichen, aber nicht ist es Elemente wie CourseNo ..
Hier mein einfacher Code ist:
public class CourseQuerySystem {
public static void main(String[] args) throws FileNotFoundException{
FileReader reader = new FileReader("CoursesOffered.json");
JSONArray courseData = (JSONArray)JSONValue.parse(reader);
JSONObject firstCourse = (JSONObject)courseData.get(0); // first course
System.out.println(firstCourse); // it works
String courseNo = (String) firstCourse.get("CourseNo");
System.out.println(courseNo); // returns NULL
boolean contains = firstCourse.containsKey("CourseNo");
System.out.println(contains); // returns false
}
}
Also, normalerweise String courseNo sollte gleich „201“, aber es gibt null zurück. Und Boolean enthält sollte wahr sein, aber es ist nicht.
Meine Ausgabe:
{"Course":{"Instructors":[{"IsPrimary":true,"Surname":"ÖZKAYA","Name":"AYLİN
SUNA"}],"SubjectName":"ACCT","Schedule": .... (it goes.. this is true)
null
false
Dank für die Hilfe!
Beachten Sie die feste Einrückung im ersten Bit. Um auf name zu bekommen, ist es 'decoded_json [0] .course.instructors [0] .name' –
In Ihrem JSON haben Sie ein Array von Objekten. Jedes dieser Objekte enthält ein Kursobjekt, und jedes Kursobjekt verfügt über die gewünschte Eigenschaft. Durchlaufen Sie also alle Objekte im Array, rufen Sie das Kursobjekt und dann die gewünschte Eigenschaft ab. Schauen Sie sich die Ausgabe des ersten Kurses an. Sie können sehen, dass es ein Kursobjekt enthält, also müssen Sie eine Ebene tiefer gehen. – ManoDestra