会社の一覧を印刷しようとしています。JSON配列の解析
私のJSONオブジェクト:
{
"Name": "crunchify.com",
"Author": "App Shah",
"Company List": [
"Compnay: eBay",
"Compnay: Paypal",
"Compnay: Google"
]
}
コード:
public class ProductTypeParser {
public void parseJson(JSONObject jsonObject) throws ParseException {
JSONObject object = (JSONObject) jsonObject;
String name = (String) object.get("Name");
System.out.println(name);
String age = (String) object.get("Author");
System.out.println(age);
//loop array
JSONArray msg = (JSONArray) object.get("Company List");
Iterator<String> iterator = msg.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
エラー:
SEVERE: Servlet.service() for servlet [contextServlet] in context with path [/SpringSafeHouseService2.0]
threw exception [Request processing failed; nested exception is
java.lang.ClassCastException: java.util.ArrayList cannot be cast to org.json.simple.JSONArray]
with root cause java.lang.ClassCastException: java.util.ArrayList cannot be cast to org.json.simple.JSONArray
ただ、サイドノート:あなたは本番にコードを置く前に、あなたの名前をリファクタリングする必要があります。 ;) - 'String age =(String)object.get(" Author ");' ... – Thomas
エラーメッセージの直後に、 'ArrayList'を' JSONArray'にキャストできません。あなたはこのような何かをすることができますか? : 'ArrayList msg = object.get(" Company List ");' – TW80000
あなたは実際にjson文字列をどのように解析していますか?メソッドは実際の構文解析を行いません。これは、最初の 'JSONObject'インスタンスを作成した時点ですでに行われています。 – Thomas