2016-02-13 92 views
0

这些是我在android中创建Json的代码,当我运行程序时,我有一个异常! plz帮助我java.lang.String类型的值不能转换为JSONArray

公共类MyActivity延伸活动{

Button button; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    button= (Button) findViewById(R.id.button); 
    try { 


     AssetManager manager = getResources().getAssets(); 
     InputStream Is= manager.open("myjson.json"); 
     String result=""; 
     int c = 0; 
     while ((Is.read())!=-1){ 

      result +=(char)c; 

     } 
     Is.close(); 

     JSONArray jsonArray = new JSONArray(result); 
     final JSONObject object=jsonArray.getJSONObject(0); 


     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
        try { 


         Toast.makeText(getApplicationContext(), "id is:" + object.getString("Day"), Toast.LENGTH_LONG).show(); 
         Toast.makeText(getApplicationContext(), "name is:" + object.getString("Start"), Toast.LENGTH_LONG).show(); 
         Toast.makeText(getApplicationContext(), "type is:" + object.getString("Finish"), Toast.LENGTH_LONG).show(); 


        }catch (Exception e){ 
         Toast.makeText(getApplicationContext(),e+"",Toast.LENGTH_LONG).show(); 
        } 
        } 

     }); 


    }catch (Exception e){ 
     Toast.makeText(getApplicationContext(),e+"",Toast.LENGTH_LONG).show(); 
    } 

} 

}

,这些都是JSON的代码:

[ 
    { 
     "Id": 5207, 
     "Name": "Эриван", 
     "Types": [ 
      "Ресторан" 
     ], 
     "Latitude": 53.904752, 
     "Longitude": 27.521095, 
     "OperatingTime": [ 
      { 
       "Day": 1, 
       "Start": "10:00:00", 
       "Finish": "23:00:00" 
      }, 
      { 
       "Day": 2, 
       "Start": "10:00:00", 
       "Finish": "23:00:00" 
      }, 
      { 
       "Day": 3, 
       "Start": "10:00:00", 
       "Finish": "23:00:00" 
      }, 
      { 
       "Day": 4, 
       "Start": "10:00:00", 
       "Finish": "23:00:00" 
      }, 
      { 
       "Day": 5, 
       "Start": "10:00:00", 
       "Finish": "23:00:00" 
      }, 
      { 
       "Day": 6, 
       "Start": "08:00:00", 
       "Finish": "23:00:00" 
      }, 
      { 
       "Day": 0, 
       "Start": "08:00:00", 
       "Finish": "23:00:00" 
      } 
     ], 
     "IsBookingAvailable": false 
    }] 
+0

如果您要将异常堆栈跟踪添加到问题中,可能会有帮助。另外,由于我们无法从代码片段中真正地告知行号,请指出相关行。 –

+0

我改变了敬酒,但没有回答! – AliJCVD

回答

1

变化

Toast.makeText(getApplicationContext(), "id is:" + object.getString("Day"), Toast.LENGTH_LONG).show(); 
Toast.makeText(getApplicationContext(), "name is:" + object.getString("Start"), Toast.LENGTH_LONG).show(); 
Toast.makeText(getApplicationContext(), "type is:" + object.getString("Finish"), Toast.LENGTH_LONG).show(); 

// object.getString("Id") 
Toast.makeText(getApplicationContext(), "id is:" + object.getString("Id"), 
     Toast.LENGTH_LONG).show(); 
// object.getString("Name") 
Toast.makeText(getApplicationContext(), "name is:" + object.getString("Name"), 
     Toast.LENGTH_LONG).show(); 
// object.getJSONArray("Types").toString() 
Toast.makeText(getApplicationContext(), "type is:" + 
     object.getJSONArray("Types").toString(), Toast.LENGTH_LONG).show(); 

“日”“开始” & “完成”不能通过object直接访问。它们位于“OperatingTime”JSONArray的几个嵌套JSONObject中。

+0

这不是一个答案,这是Java命名约定。 – Stanojkovic

+1

@Stanojkovic我不确定我是否理解你刚才所说的。 –

+0

@MohammedAoufZOUAG我不认为他意识到你改变了从JSON检索到的对象 – davehenry

相关问题