当我从另一个活动返回字符串并尝试将其转换为JSONArray时,程序会向我显示:
08-22 14:51:35.313: E/YourCartActivity(1134): Error parsing data
org.json.JSONException:
Value {"yourCart_totalPrice":"5500.00","yourCart_productName":"AAA",
"yourCart_productImg":"http:\/\/10.0.2.2\/appserv\/products\/aaa02.jpg",
"yourCart_productID":"0000002",
"yourCart_productAmount":"2",
"yourCart_shopID":"001"}
of type org.json.JSONObject cannot be converted to JSONArray
有人知道如何解决这个问题吗?
这是我的代码:
String json = yourCartConnect.getYourCartDetails();
try {
JSONArray jResult = new JSONArray(json);
for(int i=0;i<json.length();i++){
JSONObject f = jResult.getJSONObject(i);
YourCartEntry resultRow = new YourCartEntry();
resultRow.setYourCart_shopID(f.getString("yourCart_shopID"));
resultRow.setYourCart_totalPrice(f.getString("yourCart_totalPrice"));
resultRow.setYourCart_productName(f.getString("yourCart_productName"));
resultRow.setYourCart_productID(f.getString("yourCart_productID"));
resultRow.setYourCart_productImg(f.getString("yourCart_productImg"));
resultRow.setYourCart_productAmount(f.getString("yourCart_productAmount"));
yourCartEntries.add(resultRow);
}
setList(yourCartEntries);
} catch (JSONException e) {
Log.e("YourCartActivity", "Error parsing data " + e.toString());
errorConnectToServer();
}
答案 0 :(得分:0)
试用此代码:
String json = yourCartConnect.getYourCartDetails();
try {
JSONObject jsonObject = new JSONObject(json)
JSONArray jResult = jsonObject.getJSONArray("Your array key");
for(int i=0;i<jResult.length();i++){
JSONObject f = jResult.getJSONObject(i);
// write your remaining code here
}
setList(yourCartEntries);
} catch (JSONException e) {
Log.e("YourCartActivity", "Error parsing data " + e.toString());
errorConnectToServer();
}
答案 1 :(得分:0)
试试这段代码..
try {
JSONArray jArray = new JSONArray("your JSON result........");
JSONObject json_data = null;
StringBuilder print = new StringBuilder();
for (int i = 0; i < jArray.length(); i++) {
json_data = jArray.getJSONObject(i);
System.out.println("json_data : " + json_data);
System.out.println("\n");
print.append(json_data.getString("yourCart_shopID") + ", " +
json_data.getString("yourCart_totalPrice") + ", " +
json_data.getString("yourCart_productName") + ", " +
json_data.getString("yourCart_productID") + ", " +
json_data.getString("yourCart_productImg") + ", " +
json_data.getString("yourCart_productAmount") + "\n");
yourCartEntries.add(print.toString());
}
setList(yourCartEntries);
} catch (JSONException e1) {
e1.printStackTrace();
}
答案 2 :(得分:0)
你有JSONObject字符串,而不是JSONArray,
EG:
[{"yourCart_totalPrice":"5500.00","yourCart_productName":"AAA","yourCart_productImg":"http:\/\/10.0.2.2\/appserv\/products\/aaa02.jpg","yourCart_productID":"0000002","yourCart_productAmount":"2","yourCart_shopID":"001"}]
答案 3 :(得分:0)
试试这个..
String json = yourCartConnect.getYourCartDetails();
try {
if(!TextUtils.isEmpty(json)){
JSONObject f=new JSONObject(json);
YourCartEntry resultRow = new YourCartEntry();
resultRow.setYourCart_shopID(f.getString("yourCart_shopID"));
resultRow.setYourCart_totalPrice(f.getString("yourCart_totalPrice"));
resultRow.setYourCart_productName(f.getString("yourCart_productName"));
resultRow.setYourCart_productID(f.getString("yourCart_productID"));
resultRow.setYourCart_productImg(f.getString("yourCart_productImg"));
resultRow.setYourCart_productAmount(f.getString("yourCart_productAmount"));
setList(resultRow);
}
} catch (JSONException e) {
Log.e("YourCartActivity", "Error parsing data " + e.toString());
errorConnectToServer();
}