2016-05-07 45 views
1

在执行下面的代码我得到这个误差org.json.JSONException:值在java.lang.String类型不能被转换到JSONArray

org.json.JSONException: Value [{"value":"6","startDate":"1970-01-01T00:00:00","measureTypeId":1,"endDate":"1970-01-01T00:00:00","isTimeSet":true},{"value":"12","startDate":"1970-01-01T00:00:00","measureTypeId":1,"endDate":"1970-01-01T00:00:00","isTimeSet":true}] at measureTooteets of type java.lang.String cannot be converted to JSONArray 

if (tweetType == TooteetType.MEASURE) { 
      measureJson = cursor.getString(cursor.getColumnIndex(MEASURE_JSON)); 
      Log.d("ss","Measure json frm database______________"+measureJson); 
      if (measureJson != null) { 
       try { 
        JSONObject object = new JSONObject(measureJson); 
       // JSONArray jsonArray = object.getJSONArray("measureTooteets"); 
       // new JSONObject("{your string}") 
        String notes = object.getString("measureTooteets"); 
        JSONArray jsonArray = new JSONArray(notes); 
        mMeasure = new Measure(jsonArray); 
       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 
      } 
     } 

其中度量(jsonArray)将访问下面的代码

public Measure(JSONArray jsonArray) { 
     try { 
//   JSONArray jsonArray = object.getJSONArray("MeasureTooteets"); 
      for(int i =0; i<jsonArray.length(); i++){ 
       JSONObject jsonObject = jsonArray.getJSONObject(i); 
       id = jsonObject.optString("id"); 
       tooteetId = jsonObject.optString("tooteetId"); 
       laneId = jsonObject.optString("laneId"); 
       startDate = jsonObject.optString("startDate"); 
       endDate = jsonObject.optString("endDate"); 
       value = jsonObject.optDouble("value"); 
       measureTypeId = jsonObject.optInt("measureTypeId"); 
       isTimeSet = jsonObject.optBoolean("isTimeSet"); 
      } 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
    } 

请建议我任何想法来解决这个问题。这种说法

String notes = object.getString("measureTooteets"); 
JSONArray jsonArray = new JSONArray(notes); 

回答

0

更换这两个语句

JSONArray jsonArray = object.getJSONArray("measureTooteets"); 
0

你的代码是正确的,但问题可能出在measureJson的内容,请尝试给我一个存在于这个对象中的内容的例子来帮助我检测问题。

相关问题