0

私はここでこのチュートリアルに従っています、そして私のJSONオブジェクトは、私がこの種のフォーマットを持っていることを除いて、十分に同じです:

{"user":{
    "SomeKeys":"SomeValues",
    "SomeList":["val1","val2"]
    }
}

これが私の関連コードです:

Object obj = parser.parse(new FileReader("exampleJson.json"));

JSONObject jsonObject = (JSONObject) obj;
JSONObject user = (JSONObject) jsonObject.get("user");
JSONArray list = (JSONArray) user.get("SomeList");

次に、プログラムがオフになり、キーなどから値を取得します。または、NullPointerExceptionEclipseから取得します。どうしてこれなの?

.jsonファイルをにアンパッケージjsonObjectし、「user」キーをJSONObjectとしてuserアンパッケージしてから、「SomeList」キーをと呼ばれるJSONArrayとしてアンパッケージする必要がありlistます。そうする場合を除いて、存在しないJSONArrayの1つval1またはその一部に入れようとしている必要があり、の深淵を指しているだけです。この間違いに値するために私は何をしましたか?val2null

プログラムを修正するにはどうすればよいですか?

4

2 に答える 2

1

あなたのコードは私のためにうまく機能しています

public class App {

    public static void main(final String[] args) throws FileNotFoundException, IOException, ParseException {
        final Object obj = new JSONParser().parse(new FileReader("D:/a.json"));
        final JSONObject jsonObject = (JSONObject) obj;
        final JSONObject user = (JSONObject) jsonObject.get("user");
        final JSONArray list = (JSONArray) user.get("SomeList");
        System.out.println(list);
    }
} 

ファイルD:/exampleJson.json

{"user":{
    "SomeKeys":"SomeValues",
    "SomeList":["val1","val2"]
    }
}  

出力は

["val1","val2"]
于 2012-09-19T18:50:05.450 に答える
1

まったく同じjsonファイルを使用する:

{"user":{
    "SomeKeys":"SomeValues",
    "SomeList":["val1","val2"]
    }
}

これが私が使用するコードです(実際に同じものがあることを確認するためのインポートを使用):

import java.io.FileReader;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;

public class Test {

    public static void main(String[] args) throws Exception {
        Object obj = new JSONParser().parse(new FileReader("t.json"));

        JSONObject jsonObject = (JSONObject) obj;
        JSONObject user = (JSONObject) jsonObject.get("user");
        JSONArray list = (JSONArray) user.get("SomeList");
        System.out.println(list);
    }
}

そしてここに出力があります:

["val1","val2"]

ライブラリをインポートするためにmavenとm2eを使用しました。このテストに使用されたバージョンはでしたjson-simple-1.1.jar

于 2012-09-19T18:56:35.850 に答える