我的问题是我有一个asp。 Web服务..当我调用它时,它给了我以下结果:
[
{
"_OrderDetails": [
{
"ProductName": "FUCHS SUPER GT SAE 10W30 6X5 / FP10100010102",
"TotalAfterDiscount_Lc": "7500",
"MeasureUnitName": "كرتونة",
"TotalPrice_Lc": "7500",
"PricePerUnit_Lc": "75",
"Quantity": "100"
}
],
"Id": "274",
"OrderDate": "4/10/2014 12:00:00 AM",
"Number": "16",
"CustomerName": "الأسد",
"Note": ""
}
]
在主要活动中,我执行以下操作:
Gson gson = new Gson();
Log.e("Response", responseJSON);
if (responseJSON != null) {
try {
JSONObject jsonObj = new JSONObject(responseJSON);
//JSONArray jsonarr =new JSONArray();
// details=jsonObj.getJSONObject(0);
// Getting JSON Array node
details = jsonObj.getJSONArray(TAG_CONTACTS);
// looping through All Contacts
for (int i = 0; i < details.length(); i++) {
JSONObject c = details.getJSONObject(i);
String product = c.getString(TAG_PRODUCT);
Log.e("prodeuct",product+"");
}
我正确地看到了logcat中的响应,但是当我尝试从数组中获取任何对象时,我看到一个JSON异常,它说:
JSON数组无法转换为JSON对象!!!
请有人帮助我吗?
答案 0 :(得分:1)
Chang to JSONArray
if (responseJSON != null) {
try {
JSONArray array = new JSONArray(responseJSON)
}
答案 1 :(得分:1)
因为你的json返回jsonarray并且你试图访问jsonobject。
更改您的代码:
if (responseJSON != null) {
try {
JSONArray jsonObj = new JSONArray(responseJSON);
// looping through All Contacts
for (int i = 0; i < jsonObj.length(); i++) {
// your code
}
答案 2 :(得分:1)
http://jsonviewer.stack.hu/用它来查看你的json并相应地解决它。你正在使用json数组作为json对象。
使用这些:
JSONObject jsonObj = new JSONObject(responseJSON);
到
JSONArray jr = new JSONArray(responseJSON);