我正在使用JSON数组来处理层之间的数据。我在JSONObject上遇到了异常。你能指导我找到这个问题的正确调试路径吗?
第一种方法:
for( Object obj : salesDataArray )
{
JSONObject salesData = (JSONObject) obj;
我得到例外:
java.lang.ClassCastException: java.lang.String incompatible with net.sf.json.JSONObject
第二种方法:
for( Object obj : salesDataArray )
{
JSONObject salesData = JSONObject.fromObject(obj);
我得到例外:
net.sf.json.JSONException: Unquotted string 'undefined'
答案 0 :(得分:2)
您的salesDataArray
是String
个对象的数组,而不是JSONObject
个对象。这个人口在哪里?最好的方法是打印出salesDataArray
的值并找出字符串是什么,并查看上游的原因是它们是这样设置的。
另外,请考虑使用泛型来键入salesDataArray
,例如
List<JSONObject> salesDataArray = .... // get the sales data from somewhere
答案 1 :(得分:0)
System.out.println((String) obj);
如果您在其中有“未定义”,那么听起来您首先没有有效的JSON数据。 Javascript undefined与Java中的“null”类似。