JSONObjectのいずれかの要素にアクセスしようとしています。私は json-simple-1.1.1.jarを使用しています。私はあなたがコードで見るように、最初の "コース"にアクセスすることができます。問題は、 "CourseNo"や "SubjectName"のような要素にアクセスできないことです。なぜJSONObject.get( "name")がnullを返すのですか?
マイJSONデータがある:
[
{
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.
これはもちろん配列のちょうど最初の要素である(もちろん、[0])。
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
}
}
ので、通常の文字列courseNoが「201」に等しいはずであるが、それはnullを返します:私は私の単純なコードです。ここ...それはCourseNoような要素だ
それを達することはできませんが。 boolean containsはtrueにする必要がありますが、そうではありません。
マイ出力:助けを
{"Course":{"Instructors":[{"IsPrimary":true,"Surname":"ÖZKAYA","Name":"AYLİN
SUNA"}],"SubjectName":"ACCT","Schedule": .... (it goes.. this is true)
null
false
ありがとう!
最初のビットの固定インデントに注意してください。名前を取得するには、 'decoded_json [0] .course.instructors [0] .name'です。 –
JSONには、オブジェクトの配列があります。これらの各オブジェクトにはCourseオブジェクトがあり、各コースオブジェクトには必要なプロパティがあります。したがって、配列内の各オブジェクトをループし、コースオブジェクトを取得し、次に必要なプロパティを取得します。最初のコースの出力を見てください。コースオブジェクトが含まれていることがわかりますので、1つ上のレベルに進む必要があります。 – ManoDestra