JSONData を読み取ることができたので、「name」キーをコンボボックスに表示したいと考えています。しかし、文字列配列の nullpointerexception が発生します。JSON オブジェクトを defaultComboBoxModel に直接送信しようとする前に。しかし、文字列配列である必要があるため、変換するとすべてがnullになりました。配列が null になるのはなぜですか?
私のコード:
import java.util.ArrayList;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
public class Planner {
private String startingLocation;
private String destination;
private static Planner planner = null;
private int id;
private JSONArray array;
ArrayList myList = new ArrayList();
public static Planner getPlanner(){
if (planner == null ){
planner = new Planner();
}
return planner;
}
public void setStartingLocation(String from) {
this.startingLocation = from;
}
public void setDestination(String dest) {
this.destination = dest;
}
public String getStartingLocation() {
return startingLocation;
}
public String getDestination() {
return destination;
}
public void setID(int id) {
this.id = id;
}
public void setLocationName (JSONArray array){
this.array = (JSONArray) array;
}
public String[] getLocationName(){
System.out.println(this.array.size());
for (int i=0; i<this.array.size(); i++){
myList = (ArrayList) this.array.get(i);
myList.add(i, array);
}
System.out.println(myList);
return (String[]) myList.toArray();
}
}
public void parseJsonData() throws ParseException {
JSONParser parser = new JSONParser();
Object obj = parser.parse(jsonData);
JSONObject topObject = (JSONObject) obj;
JSONObject locationList = (JSONObject) topObject.get("LocationList");
JSONArray array = (JSONArray) locationList.get("StopLocation");
Iterator<JSONObject> iterator = array.iterator();
String name = null;
while (iterator.hasNext()) {
JSONObject jsonObj = (JSONObject) iterator.next();
Planner.getPlanner().setLocationName(array);
}
}
final DefaultComboBoxModel model = new DefaultComboBoxModel(Planner.getPlanner().getLocationName());
comboBox = new JComboBox(model);